我目前有这个循环来根据一系列索引修剪数据集(df_2)中的行,包括从df_3中的2列中获取的部分的开始和结束索引,并创建一个新文件(df)
for(i in 1:nrow(df_3)){
if (i==1) df <- df_2[df_3$start[i]:df_3$end[i],]
else df <- rbind(df,df_2[df_3$start[i]:df_3$endi],])
}
每个部分都有一个与之关联的值,它包含在df_3的第3列中。我想在df中创建一个新列,重复与该部分关联的值。
非常感谢一些帮助,请随时要求澄清 - 尽可能简洁!
根据Joran的建议 - 这里有一些例子
DF
index new_column
0
1
2
3
4
5
6
7
8
9
10
DF_3
start _end new_column_values
0 3 1
4 6 2
7 10 3
答案 0 :(得分:0)
如果我正确理解您的问题,您可以使用cut
,如下所示:
DF$new_column <- cut(DF$index,
breaks = c(DF_3$start[1], DF_3$end),
include.lowest = TRUE,
labels = DF_3$new_column_values)
DF
index new_column
1 0 1
2 1 1
3 2 1
4 3 1
5 4 2
6 5 2
7 6 2
8 7 3
9 8 3
10 9 3
11 10 3
在此,我正在尝试利用可用的信息。我们基本上为DF$index
创建了一个因子,因子级别由另一个data.frame
中的范围确定。因此,对于cut
,我将breaks
设置为包含第一个起始值和所有结束值的向量,并且我将“标签”设置为“new_column_values”中的值“变量。
请注意,生成的“new_column”不是(在当前形式中)数字变量,而是一个因子。