用一个空的dataframe-cbine.fill绑定一个dataframe?我想我在找一个模拟的rbind.fill(在Hadley‘splyr(包装)cbind..我看过了,但没有cbind.fill.我想做的是:#set these just for this exampleone_option <- TRUEdiff_option <- TRUEreturn_df <- data.frame()if (one_option) {
#do a bunch of calculations, produce a data.frame, for simplicity the following small_df
small_df <- data.frame(a=1, b=2)
return_df <- cbind(return_df,small_df)}if (diff_option) {
#do a bunch of calculations, produce a data.frame, for simplicity the following small2_df
small2_df <- data.frame(l="hi there", m=44)
return_df <- cbind(return_df,small2_df)}return_df可以理解,这会产生一个错误:Error in data.frame(..., check.names = FALSE) : arguments imply differing number of rows: 0, 1我现在的修复方法是替换线路return_df <- data.frame()带着return_df <- data.frame(dummy=1)然后代码就能工作了。然后,我只需从return_df最后。在添加虚拟代码并运行上述代码之后,我得到 dummy a b l m1 1 1 2 hi there 44然后我只需要处理掉假人,例如:> return_df[,2:ncol(return_df)]
a b l m1 1 2 hi there 44我肯定我错过了一个更简单的方法来做这件事。编辑:我想我不是在找Cbinn,因为这意味着安娜的值将在cbind之后创建,这不是我想要的。
3 回答
catspeake
TA贡献1111条经验 获得超0个赞
我只是提供了另一种方式,使用rbind.fill()
我们已经有了。
require(plyr) # requires plyr for rbind.fill()cbind.fill <- function(...) { transpoted <- lapply(list(...),t) transpoted_dataframe <- lapply(transpoted, as.data.frame) return (data.frame(t(rbind.fill(transpoted_dataframe))))
繁花不似锦
TA贡献1851条经验 获得超4个赞
使用rowr::cbind.fill
rowr::cbind.fill(df1,df2,fill = NA)
A B
1 1 1
2 2 2
3 3 3
4 4 4
5 5 5
6 NA 6
添加回答
举报
0/150
提交
取消