2015-04-22 34 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())