2017-09-25 13 views
2

我需要創建一個空的數據框,並設置列以便以後追加值。創建空的數據框和錯誤替換有1行,數據有0發生

我的代碼:

df <- data.frame() 

varNames <- c("rho", "lambda", "counts") 
colnames(df)<- varNames 
df['$rho'] <- NA 
df["lambda"] <- NA 
df["counts"] <- NA 

Error in [<-.data.frame(*tmp*, "$rho", value = NA) : replacement has 1 row, data has 0

發生。

+1

您可以使用data.frame(rho = numeric(),lambda = numeric(),count = numeric())' – akrun

+0

你也可以做data.frame(rho = NULL,lambda = NULL,counts = NULL) –

+0

FYI,一般來說,你通常不需要在循環前初始化R中的對象。 – Sotos

回答

1

我們可以使用

df1 <- data.frame(rho = numeric(), lambda = numeric(), counts = numeric()) 
rbind(df1, list(rho = NA, lambda = NA, counts = NA)) 
# rho lambda counts 
#1 NA  NA  NA 

如果我們單獨分配,然後而data.framelist一個list

lst <- setNames(vector("list", 3), varNames) 
lst[['rho']] <- NA 
lst[['lambda']] <- NA 
lst 
#$rho 
#[1] NA 

#$lambda 
#[1] NA 

#$counts 
#NULL 

list元素可以是不同length有用與等長的專欄。一旦分配完成並且長度相等,然後將其轉換爲data.frame,並將其寫回data.frame(lst)並將其寫回文件

+0

謝謝,但同樣的錯誤發生tho。 – Kay

+0

@Kay這裏的目標是什麼 – akrun

+0

它與'rbind'一起使用,但不是與我的問題中的代碼一起使用,其中我分別添加了3列,值爲「NA」。你知道它爲什麼會發生嗎?我試圖創建一個數據框並追加R輸出,並最終寫入Excel表格。這就是我指定列的原因。 – Kay

相關問題