我想在函数中创建一个循环来创建一个具有可变列数的data.frame.
有类似的东西:
a = c("a","b")
b = c(list(1,2,3), list(4,5,6))
data.frame(a,b)
Run Code Online (Sandbox Code Playgroud)
我想得到一个数据框,如:
a 1 2 3
b 4 5 6
Run Code Online (Sandbox Code Playgroud)
而不是我获得:
a 1 2 3 4 5 6
b 1 2 3 4 5 6
Run Code Online (Sandbox Code Playgroud)
谢谢!
PS:我也试过rbind,但它不起作用......
有很多方法可以做这种事情.你的第一个问题是你的"b"对象不是矩阵.您需要将其定义为具有行和列的(或使用rbind).
您可以创建数据框然后将它们组合起来(这比使用矩阵开始更好,因为它会将每个对象类型保持为数字或字符等,而矩阵会丢失):
x1 <- data.frame(X=c("a","b"))
x2 <- data.frame(rbind(c(1,2,3), c(4,5,6)))
data.frame(x1, x2)
X X1 X2 X3
1 a 1 2 3
2 b 4 5 6
Run Code Online (Sandbox Code Playgroud)
如果x1用于rownames,那么你应该遵循James的例子:
x2 <- data.frame(rbind(c(1,2,3), c(4,5,6)))
rownames(x2) <- c("a","b")
Run Code Online (Sandbox Code Playgroud)