2015-04-22 42 views
1

我正在尝试创建一个我不知道大小的数据帧。有没有办法创建一个适合你的变量的数据框?在R中创建未知大小的数据帧

我能做这样的事吗?

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()只是返回一些数值。

+1

您可以创建这样一个虚拟的数据帧:'ñ< - 10; df < - data.frame(x = numeric(n),y = character(n),z = logical(n))'。我不知道你的目标是什么...... – lukeA

+3

数据帧没有静态大小。例如,'rbind()'或'cbind()'将始终扩展数据框的大小。虽然也许我误解了你的问题。 –

+0

我想你应该知道大小。否则,如果'n'没有被指定,'break'或者你的函数会抛出一个错误。 ''rbind()'可以很容易地处理带NULL元素的数据框('data.frame(val1 = numeric(0),...)') –

回答

0

我认为你可以做到这样:

initialaize数据框为空,使用空载体:

df <- data.frame(val1=value1(), 
       val2=value2(), 
       val3=value3())