我試圖在數據幀列表上使用lapply;但未能正確傳遞參數(我認爲)。使用lapply更改數據幀列表的列名稱
數據幀列表:
df1 <- data.frame(A = 1:10, B= 11:20)
df2 <- data.frame(A = 21:30, B = 31:40)
listDF <- list(df1, df2,df3) #multiple data frames w. way less columns than the length of vector todos
向量與列名:
todos <-c('col1','col2', ......'colN')
我想用lapply改列名:
lapply (listDF, function(x) { colnames(x)[2:length(x)] <-todos[1:length(x)-1] } )
,但是這並未根本不會改變名字。我不是自己傳遞數據框架,而是其他的東西?我只想更改名稱,而不是將結果返回給新對象。
在此先感謝,p。
不會因爲由值* R的呼叫的工作* – jogo
只需添加一個'x'到端'lapply(listDF,函數(X){colnames(x)的[2:長度(X)] < -todos [1:length(x)-1]; x})'。你寫的函數沒有返回值。 –
與問題無關,但我想'1:length(x)-1'是一個常見的錯誤(有時不是有害的)。右邊的行是'1:(length(x)-1)'(小心優先!) – nicola