我想创建一个空数据帧,然后执行循环并将新内容添加到(新)数据帧 .
因此我写了这样的东西:
number <- c(1,2)
text <- c("Yes", "No")
df_test <- data.frame(number, text)
df_base = data.frame(number = numeric(), text = character())
for(i in 1:nrow(df_test)){
text <- df_test$text[i]
number <- df_test$number[i]
df_temp <- data.frame(text, number)
df_base <- rbind(df_base, df_temp)
}
上面的代码可以解决这个问题,但似乎并不是最有效的方法 . 关于如何更好地写这个的任何想法?
1 回答
如果您知道data.frame(df_base)的最终大小,则可以预先分配对象:
然后,在循环中,填写以下列:
这将节省R在每个循环中制作df_base的多个副本
rbind
.