R:如何根据单元格中的值将数据帧中的行拆分为多行?

1007

我有一个data.frame看起来像以下内容:

id <- c("a","a","a","a","b","b","b","b")
age_from <- c(0,2,3,7,0,1,2,6)
age_to <- c(2,3,7,10,1,2,6,10)
y <- c(100,150,100,250,300,200,100,150)
df <- data.frame(id,age_from,age_to,y)
df$years <- df$age_to - df$age_from

这给出了一个df看起来像:

     id   age_from  age_to     y      years
1     a       0       2       100       2
2     a       2       3       150       1
3     a       3       7       100       4
4     a       7       10      250       3
5     b       0       1       300       1
6     b       1       2       200       1
7     b       2       6       100       4
8     b       6       10      150       4

我希望有20行,每行10条,而不是每行的年数不等id,每行占一年。这还将涉及对y列中列出的年数中列进行平均years

我相信这可能要使用循环来完成1:nn等于在值years列。尽管我不确定如何开始。

K

您可以用来rep按给定年份重复行

x <- df[rep(seq_len(nrow(df)), df$years),]
x
#    id age_from age_to         y years
#1    a        0      2  50.00000     2
#1.1  a        0      2  50.00000     2
#2    a        2      3 150.00000     1
#3    a        3      7  25.00000     4
#3.1  a        3      7  25.00000     4
#3.2  a        3      7  25.00000     4
#3.3  a        3      7  25.00000     4
#4    a        7     10  83.33333     3
#4.1  a        7     10  83.33333     3
#4.2  a        7     10  83.33333     3
#5    b        0      1 300.00000     1
#6    b        1      2 200.00000     1
#7    b        2      6  25.00000     4
#7.1  b        2      6  25.00000     4
#7.2  b        2      6  25.00000     4
#7.3  b        2      6  25.00000     4
#8    b        6     10  37.50000     4
#8.1  b        6     10  37.50000     4
#8.2  b        6     10  37.50000     4
#8.3  b        6     10  37.50000     4

当您要平均y栏的年数除以年数时:

x$y <- x$y / x$years

如果age_from应该去09age_to来自110每个ID:

x$age_from <- x$age_from + ave(x$age_from, x$id, x$age_from, FUN=seq_along) - 1
#x$age_from <- ave(x$age_from, x$id, FUN=seq_along) - 1 #Alternative
x$age_to <- x$age_from + 1

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

将熊猫数据框单元格中的嵌套数组值拆分为多行

将单元格值拆分为多行并保留其他数据

Python-如何根据测力计将列中的单元格拆分为新行

使用VBA根据Excel中的单元格值将数据拆分为多个工作簿

将多行单元格拆分为不同的行

根据单元格中的值数重塑R中的数据帧

根据熊猫数据框中的条件将单元格拆分/分解为多行

根据列中的值删除行中的值,然后在Pandas中将单元格拆分为多行

根据数量列中的值将行拆分为多行

如何将两行包含多行的单元格拆分为唯一的行,以保持/复制周围的数据?

TSQL:如何根据单元格中的数字将行拆分为多行

根据单元格中的值(R!)有条件地将数据帧按行拆分

在R数据帧中将行值拆分为多行

将数据帧单元格中的值向量转换为对应行的列值

如何将Word表复制到Excel中而不将单元格拆分为多行?

如何在R Studio AND SQL中使用限制器将数据中的一个单元格拆分为2个单元格

如何将单元格中的数据拆分为 Excel 上的现有列?

如何将单行拆分为多行,每行都有自己的单元格值,用于 Excel 表中的不同列

如何在熊猫数据框中的多行中拆分单元格的值?

将单元格拆分为行,但相对于原始行中的数据

使用R将一个单元格中的数据拆分为多行

根据单元格值将 CSV 行拆分为多行

将行拆分为多行,同时保留单元格

将mySQL中的多个单元格拆分为多行

将单元格值拆分为多行而不从其他单元格复制数据

如何将单元格内的字典列表拆分为数据框中的多行?

根据值将单元格拆分为列

将单元格中的值拆分为列和行

根据在多个单元格中拆分字符串将一行拆分为多个