同じ名前でいくつかのデータフレームに由来する長さが異なる列で、Rで統計分析をいくつか行いたいとします。リスト内のデータフレームの列を編集するR
:私は「NA」でそれを置き換える、単語の代わりに数字の「FAILED」含まれています(my.colが言う)関心の列のいくつかの要素として、今my.list <- list(df1, df2, df3, df4)
:私は、リストを作成しました
for (i in 1:length(my.list)){
for (j in 1:length(my.list[[i]]$my.col)){
if (my.list[[i]]$my.col[j] %in% c("FAILED"))
{my.list[[i]]$my.col[j] <- 'NA'};
}
}
私はこれが問題の最良の解決策ではないと確信していますが、少なくとも動作します。私は、別の列(my.colではなく)に無効な要素レベルが「NA」で置き換えられているという警告を出すと言わざるを得ない。実際にmy.col以外の列が実際に考慮される理由はわかりません。改善のための提案が高く評価されています。
残りの数字には、ポイントではなく小数点が含まれています。 「dec =」、「」で.csvファイルをインポートするときにこの問題を解決しようとしましたが、数字以外のもの(「FAILED」など)が含まれている列では機能しません。だから、コンマを置き換える必要があります。これが私にとってはうまくいきません。私は試しました:
for (i in 1:length(my.list)){
as.numeric(gsub(",", ".", my.list[[i]]$my.col))
}
これはエラーではありませんが、何も変更しません。
as.numeric(gsub(",", ".", my.list[[4]]$my.col))
リストの4番目の要素については何をしたいのですか。私の視点から見ると、どちらも同じでなければなりません。これの問題は何ですか?
Btw、他の列をデータフレームから削除したくないのは、他の分析のために将来必要になるかもしれないからです。
gsubは修正された式を返します。したがって、あなたはそれを割り当てる必要があります: 'my.list [[i]] $ my.col < - as.numeric(gsub("、 "、"。 "、my.list [ i]] $ my.col)) ' – smu
再現可能な例は素晴らしいです(つまり、Rに組み込まれたデータを使用するか、独自のデータを提供する)。 –
@smu:ありがとう、これは動作します! – AnjaM