0
我有興趣在SparkR數據框中的所有列上找到缺失值的交叉表。我想利用這些數據可以使用下面的代碼的生成:在所有列中交叉列表SparkR數據框中的缺失值
數據
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
之後,this answer我想在使用flatMap
所需的解決辦法。這個想法是用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在類似的靈活性到達。的NULL