【发布时间】:2015-04-22 20:19:24
【问题描述】:
我正在尝试创建一个我不知道大小的数据框。有没有办法创建一个适应你的变量的数据框?
我可以做这样的事情吗?
df <- function(n){
x <- numeric(0)
y <- numeric(0)
z <- numeric(0)
i <- 0
repeat{
x[i] <- value1(...)
y[i] <- value2(...)
z[i] <- value3(...)
i < i + 1
if(i >= n){
break
}
}
df <- data.frame(val1 = x, val2 = y, val3 = z)
}
为此,我们假设 value1()、value2() 和 value3() 只返回一些数值。
【问题讨论】:
-
您可以像这样创建一个虚拟数据框:
n <- 10; df <- data.frame(x=numeric(n), y=character(n), z=logical(n))。我不知道你的目标是什么...... -
数据框没有静态大小。例如,
rbind()或cbind()将始终扩展数据框的大小。虽然也许我误解了你的问题。 -
我猜你应该知道尺寸。否则,当未指定
n时,如何“中断”或您的函数将引发错误。并且rbind()可以轻松处理具有 NULL 元素的数据框 (data.frame(val1 = numeric(0), ...))