我想要做的是用另一个数据框的列中的值填充数据框的列。但是,我只希望在第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]
答案 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]
否则,您的解决方案是一个很好的解决方案,只是一个错字问题;)