2
我正在嘗試編寫一些迭代通過數據框列表的代碼,向每個包含與舊列相同的值的新列添加1,該列中的第一個值是NA。下面是我的代碼:迭代地將新列添加到數據框列表
for(dataframe in 1:length(listOfDataFrames)){
newColumn <- c(NA)
for(row in 1:(nrow(listOfDataFrames[[dataframe]]) - 1)){
newColumn <- append(newColumn, listOfDataFrames[[dataframe]]$oldColumn[row])
}
mutate(listOfDataFrames[[i]], newColumn = newColumn)
}
然而,當我在執行讀該代碼,我得到第一個數據幀的錯誤:
replacement has 894 rows, data has 895
什麼導致這個錯誤?對不起,如果這是一個簡單的問題,我不是R的專家。
謝謝!
謝謝!這對我有效。我不習慣lapply函數,所以我通過本能去循環,但是你的代碼更好!我沒有考慮使用head函數來創建新列。 關於$,爲什麼它被認爲是壞的?我已經看到它在教程中的函數內部使用,例如: https://www.stat.berkeley.edu/~spector/R.pdf – Shuklaswag
我不喜歡本教程,但使用'$'是由於部分匹配而導致更寬容(例如輸入:ll < - list(yyaa = 1); ll $ y'),所以它是錯誤/錯誤的來源。最好只用於R控制檯。 – agstudy