【发布时间】:2014-09-19 05:47:51
【问题描述】:
我有一个大小均匀的字符向量列表,我希望将它们有效地组合到一个数据帧中,列表中的向量成为新数据帧的行。在下面,ls 是我的列表,df 是我预先分配的数据框。
ls <- list(c("r1c1", "r1c2", "r1c3"),
c("r2c1", "r2c2", "r2c3"))
df <- data.frame(col1 = character(), col2 = character(), col3 = character(),
stringsAsFactors = F)
# Desired Result:
col1 col2 col3
1 r1c1 r1c2 r1c3
2 r2c1 r2c2 r2c3
到目前为止,我已经尝试过rbind(df, ls),它似乎按列创建了新的数据框,这样df 看起来像:
c..r1c1....r1c2....r1c3.. c..r2c1....r2c2....r2c3..
4 r1c1 r2c1
5 r1c2 r2c2
6 r1c3 r2c3
我还尝试在 for 循环中执行 rbind:
for (i in 1:length(ls))
df <- rbind(df, ls[[i]])
然而,这给了我警告消息:invalid factor level, NA generated,尽管我最初将stringsAsFactors 设置为 false。当在较大的列表上不断执行时,Rbind 似乎也是一个缓慢的过程,所以我想尽可能减少它的使用。
任何帮助将不胜感激。
【问题讨论】:
标签: r list vector dataframe rbind