繁体   English   中英

如何使用来自另一个 data.frame 列的值填充 data.frame 列的每第 n 行?

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM