如何用另一个data.frame的列中的值填充data.frame列的第n行?

时间:2019-11-23 04:31:27

标签: r dataframe

我想要做的是用另一个数据框的列中的值填充数据框的列。但是,我只希望在第n行中插入一个值

temp <- data.frame(value = numeric(312))
temp_2 <- matrix(3:80)

如何将temp_2的值插入到温度的每第4行中,以便温度看起来像这样?

head(temp, 12)
   value
1       0
2       0
3       0
4       3
5       0
6       0
7       0
8       4
9       0
10      0
11      0
12      5

我的想法是使用seq()将是一个很好的解决方案。也许类似于下面的代码,但没有错误。为了重申我的目标,我希望将temp_2中的每个顺序值都放入temp的第4行中,以便所有temp_2的值都适合temp。但是,这导致“矩阵上的下标数量不正确”错误。

temp$value[seq(from = 4, to = 312, by = 4),1] <- temp_2[1:78,1]

2 个答案:

答案 0 :(得分:1)

这里是使用R的回收属性的另一种选择

temp$value[c(FALSE, FALSE, FALSE, TRUE)] <- temp_2[,1]
temp
#    value
#1       0
#2       0
#3       0
#4       3
#5       0
#6       0
#7       0
#8       4
#9       0
#10      0
#11      0
#12      5
#....

答案 1 :(得分:0)

您犯了一个小错误,尝试修改数据框第一列的第一列,您应该编写以下任一内容:

temp$value[seq(from = 4, to = 312, by = 4)] <- temp_2[1:78,1]

或:

temp[seq(from = 4, to = 312, by = 4),1] <- temp_2[1:78,1]

否则,您的解决方案是一个很好的解决方案,只是一个错字问题;)