私が理解している限りでは、r を使用する場合、for ループよりも lapply などの関数を使用する方がエレガントな場合があります (これは、他のオブジェクト指向言語で頻繁に使用されます)。ただし、コマンドで単純なタスクを実装しようとすると、構文に頭がつかず、ばかげたエラーが発生します。例えば:
forループを使用してcsvファイルからロードされた一連のデータフレームがあります.次のダミーデータフレームはデータを適切に記述しています:
x <- c(0,10,11,12,13)
y <- c(1,NA,NA,NA,NA)
z <- c(2,20,21,22,23)
a <- c(0,6,5,4,3)
b <- c(1,7,8,9,10)
c <- c(2,NA,NA,NA,NA)
df1 <- data.frame(x,y,z)
df2 <- data.frame(a,b,c)
最初にデータフレーム名のリストを生成し (data_names - csv ファイルをロードするときにこれを行います)、次に単純に列を合計します。もちろん私の試みはうまくいきません:
lapply(data_names, function(df) {
counts <- colSums(!is.na(data_names))
})
もちろん、リストを使用することもできますが (長い目で見れば、このほうがよいかもしれません)、教育的な観点からは、ラップリーをよりよく理解したいと考えています。
ご指摘ありがとうございます