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
, 내가 flatMap
를 사용하여 원하는 해결에 도달하고자하는 this answer을. 아이디어는 누락되거나 누락되지 않은 값을 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
의