2016-06-30 4 views
1

私はdata.framesのリストを持っています。私は、文字ベクトルを取得し、その値をリスト内のすべてのdata.framesの列名として使用したいと思います。私はこのためにlapplyを使用しようとすると、私は次のエラーを取得する:ここでlapplyとcolnamesが 'x && y'エラーで無効な 'y'タイプを生成します

Error in is.data.frame(x) && do.NULL : invalid 'y' type in 'x && y'

は再現例です。再現性の例をしながら

x = 1:5 
y = 6:10 
z = 11:15 
newnames = c("Var1", "Var2") 
dflist = list("df1" = cbind.data.frame(x,y), "df2" = cbind.data.frame(x,z)) 
str(dflist) 
lapply(dflist, colnames, newnames) 

答えて

3

は解決策を発見しました。問題はcolnamescolnames<-と同じではないことです。上の質問のコードはに、dflistの各メンバーから列名をで検索し、列名のベクトルを追加の不要な引数として渡します。再現可能な例の適切な最後の行は、次のとおりです。

lapply(dflist, `colnames<-`, newnames) 
+0

または別のオプションは 'lapply(dflist、setNames、newnames)'です。 – akrun

関連する問題