0
SparkRデータフレームのすべての列で欠損値のクロス集計に関心があります。SparkRデータフレームの欠損値をすべての列でクロス集計します
データ、私はflatMap
を使用して、所望の解に到達したいthis answerに続いて
set.seed(2)
# Create basic matrix
M <- matrix(
nrow = 100,
ncol = 100,
data = base::sample(x = letters, size = 1e4, replace = TRUE)
)
## Force missing vales
M[base::sample(1:nrow(M), 10),
base::sample(1:ncol(M), 10)] <- NA
table(is.na(M))
SparkR
:私は利用しようとしているデータは、以下のコードを使用して生成することができます。考え方は、欠損値/欠損値をT/F
に置き換えて、各変数のオカレンスをカウントすることです。まず、それはflatMap
は何SparkR 2.1によってエクスポートされたことが表示されませんので、私は、コードを実行した後、:::
# Import data to SparkR ---------------------------------------------------
# Feed data into SparkR
dtaSprkM <- createDataFrame(sqc, as.data.frame(M))
## Preview
describe(dtaSprkM)
# Missing values count ----------------------------------------------------
# Function to convert missing to T/F
convMiss <- function(x) {
ifelse(test = isNull(x),
yes = FALSE,
no = TRUE)
}
# Apply
dtaSprkMTF <- SparkR:::flatMap(dtaSprkM, isNull)
## Derive data frame
dtaSprkMTFres <- createDataFrame(sqc, dtaSprkMTF)
セカンドでそれを掘る必要があった次のエラーメッセージで失敗します
Error in (function (classes, fdef, mtable) :
unable to find an inherited method for function ‘isNull’ for signature ‘"list"’
希望結果
Rの通常のデータフレームでは、次のようにして目的の結果が得られます。
sapply(as.data.frame(M), function(x) {
prop.table(table(is.na(x)))
})
は私がtable
とprop.table
提供し、理想的には私がSparkR経由で同様の柔軟性に到着できるようにしたいと柔軟性が好き。