ann <- 1:2500
len <- sample(1:3,1000,replace=TRUE)
df <- data.frame(col1= c(1:2500),col2= c(1:2500))
for (i in 1:length(ann)) {
if (length[i]==1) {
df$col1[i] <- len[i] }
else if (length[i]==2) {
df$col1[i] <- len[i]
df$col1[i+1] <- len[i] }
else if (length[i]==3) {
df$col1[i] <- len[i]
df$col1[i+1] <- len[i]
df$col1[i+2] <- len[i] }
}
尝试使 2 的每个实例在下一行中重复使用数字 2。另外,如果有 3,我希望此后的两行具有数字 3。谢谢!我需要练习 for 循环。
Error in if (length[i] == 1) { : missing value where TRUE/FALSE needed
更新:for 循环将用以下数字替换每个重复的行,我需要知道如何在每个 2 实例之后创建 i+1,以及如何在每个 3 实例之后创建 i+2。
在这里我们可以迭代所有的元素len
,并为每个执行一个内部循环,该循环采用该元素len
并将其输入到那么多行中df$col1
.
df_row <- 1
for (i in 1:length(len)) {
for (j in 1:len[i]) {
df[df_row, 1] = len[i]
df_row <- df_row + 1
}
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)