r语言 - 在循环中向数据帧追加数据,但只有最后一个值进入数据帧



我有一个for loop,& while loop,每次迭代后产生一个数据。我想把所有的数据加到一个数据帧里,但发现很难。因为只有从循环中创建的最后一个数据是成功的(如下图所示:输出代码)。

下面是代码,请建议如何修复它:

df = data.frame(matrix(nrow = 350, ncol = 12))
kol<-1
for (x in 1:350) {
output  <-  c(paste0(x))
df[,1] = output 
}
while (kol <= 223) {
if(kol < 224){
rowd1 <- c(paste("gen ",kol))
}
df[,2] = rowd1
kol = kol+1
}#while
while (kol <= 446) {
if(kol < 447){
rowd2 <- c(paste("gen ",kol))
}
df[,3] = rowd2
kol = kol+1
} 
colnames(df) <- c("Kromosom", "A","B","C","D","E","F","G","H","I","J","K")    
df
所以,我将更新我提出的问题。如果代码变成这样:问题:行问题
... 
for (x in 1:350) {
output  <-  c(paste0(x))
df[x,1] = output
}
for (x2 in 1:223) {
output2  <-  c(paste("Gen ",x2))
df[1,2:224] = output2
}"#why only the value 223 comes out, like the output in the picture 'row problem' that is -Gen 223-"
...

对于一个data.framedf,df[,n]是整个第n列。所以每一步都要设置整个列。在您的代码中,使用

df[x, 1] = output

,例如,设置单行的值。

SOLVED

特别感谢@JamesHirschorn,非常感谢您帮助我解决了这个问题。并感谢给予反馈的人。

,

  • 可能会远离while。为什么不用for呢而不是?——GuedesBF
  • 使用df[x, 1] = output为第一列中的每一行设置值

代码
df = data.frame(matrix(nrow = 350, ncol = 224))
for (x in 1:350) {
output  <-  c(paste(x))
df[x,1] = output
}
for (x2 in 2:224) {
output2  <-  c(paste("Gen ",x2-1))
df[1,x2] = output2
}
colnames(df) <- c("Kromosom", "A","B","C","D","E","F","G","H","I","J","K", ...)    
df

:这所以,祝我未来好运吧

相关内容

  • 没有找到相关文章

最新更新