r - 使用 cbind 动态扩展数据框列

标签 r binding null dataframe

我想在循环中构建一个数据框,每次使用cbind添加一个新列。我尝试以下操作:

test <- NULL
df <- data.frame(x=c(1,2,3,4))
test <- cbind(test, df)

这会产生错误:

Error in data.frame(..., check.names = FALSE) : arguments imply differing number of rows: 0, 4

在 R 中实例化空白数据框然后在循环中绑定(bind)到它的正确方法是什么?

谢谢

最佳答案

您需要将 test 创建为具有相同行数的结构,以便 cbind.data.frame 不会抛出错误:

 test <-data.frame(row.names=1:4)
 df <- data.frame(x=c(1,2,3,4))
 test <- cbind(test, df)

 test
  x
1 1
2 2
3 3
4 4

另外两种方法:

> test <-data.frame(row.names=1:4)
>      test[['x']] <-c(1,2,3,4)
> test
  x
1 1
2 2
3 3
4 4


> test <-data.frame(row.names=1:4)
>      test[1] <-list(x=c(1,2,3,4))
> test
  x
1 1
2 2
3 3
4 4

关于r - 使用 cbind 动态扩展数据框列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8867582/

相关文章:

r - 没有金额汇总的中间步骤,如何获得相同的图?

haskell ,错误 "Qualified name in binding position "

javascript - 为什么会触发我的 KnockoutJS 自定义绑定(bind)?

c# - 转换一个可以为 null 的对象

java - 将字符串设置为 ""还是保留为空?

html - 将操纵输出与 knitr 集成

在没有 S-Plus 的情况下读取 S-Plus 数据库?

r - 矩阵的给定值,得到它的坐标

ios - Xamarin.iOS 未看到对 iOS 绑定(bind)库的引用

java - 以优雅的方式检查两个参数是否为 null