115 列、1000 行の大きな csv が与えられました。列にはさまざまなデータがあり、一部は文字ベースで、一部は整数などです。ただし、データにはさまざまなタイプ (NA、-999、NULL など) の多数の null 変数があります。
私がやりたいことは、列のデータの 30% 以上が何らかのタイプの NULL である列の LIST を生成するスクリプトを作成することです。
これを行うために、1 つの列の NULL パーセンテージ (小数点として) を提供するスクリプトを作成しました。このスクリプトは私にとってはうまくいきます。
length(which(indata$ObservationYear == "" | is.na(indata$ObservationYear) |
indata$ObservationYear == "NA" | indata$ObservationYear == "-999" |
indata$ObservationYear == "0"))/nrow(indata)
すべての列に対してこれを行うスクリプトを書きたいと思います。lapply 関数を使用する必要があると思います。
ここでこれを実行しようとしましたが、このスクリプトをまったく機能させることができないようです:
Null_Counter <- lapply(indata, 2, length(x),
length(which(indata == "" | is.na(indata) | indata == "NA" | indata == "-999" | indata == "0")))
names(indata(which(0.3>=Null_Counter / nrow(indata))))
次のエラーが表示されます。
Error in match.fun(FUN) : '2' is not a function, character or symbol
と:
Error: could not find function "indata"
理想的には、すべての null 変数 (NA、-999、0、NULL) のパーセンテージが 30% を超える、すべての列名のベクトル LIST を提供してもらいたいと考えています。
誰でも助けることができますか?