[英]R How to update a column in data.frame using values from another data.frame
[英]How to fill every nth row of a data.frame column with values from another data.frame's column?
我想要做的是用来自不同数据框列的值填充数据框列。 但是,我只希望每个第 n 行都插入一个值
temp <- data.frame(value = numeric(312))
temp_2 <- matrix(3:80)
如何将 temp_2 的值插入到 temp 的每 4 行中,以便 temp 看起来像这样?
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]
这是使用 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
#....
你犯了一个小错误,你尝试修改数据框第一列的第一列,你应该写:
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]
否则,你的解决方案是好的,只是一个错字问题;)
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.