2015-08-21 78 views
1
dummify = function (listOfSmbin, df) { 
    dummified = list(NULL) 
    #for all columns 
for (col in colnames) { 
    #generate dummified column 
    dummified[col] = smbinning.gen(df[col], listOfSmbin[col], col) 
    } 
return(dummified) 
} 

我想逐個添加n * 1個整形數據框。如何初始化空數據框並添加列R

爲了做到這一點,我需要在進入for循環之前首先初始化一個空的數據框。

但是,當我初始化一個空數據框時,由於初始化的數據框有0行,我不能添加具有1或更多行的列。

(它沒有工作相同,即使我初始化列名的數據幀)

+0

你試圖達到的目標是什麼?一些有n行和1列的數據框?如果是這種情況,'rbind()'可能會有所幫助。而且,R是矢量化語言,所以這些'for'循環幾乎肯定會變得更加高效。 – Phil

回答

0

它是不明確需要什麼類型的對象smbinning.gen的作爲輸入,如果前兩個可以是向量,則以下代碼應該工作;如果它將data.frames作爲輸入,則使用smbinning.gen(as.data.frame(var1), as.data.frame(var2), colName)

dummified <- Map(function(var1, var2, colName){ 
     smbinning.gen(var1, var2, colName) 
    }, df, listOfSmbin, colnames) 
dummified <- as.data.frame(dummified)