programing

열의 NA 값 수 결정

css3 2023. 6. 29. 20:20

열의 NA 값 수 결정

의 수를 세고 싶습니다.NA데이터 프레임 열에 있는 값입니다.내 데이터 프레임이 호출되었다고 가정합니다.df그리고 내가 고려하고 있는 칼럼의 이름은.col제가 생각해 낸 방법은 다음과 같습니다.

sapply(df$col, function(x) sum(length(which(is.na(x)))))  

이것이 이를 위한 좋은/가장 효율적인 방법입니까?

당신은 문제를 너무 깊이 생각하고 있습니다.

sum(is.na(df$col))

찾으시는 경우NA데이터 프레임의 각 열에 대한 카운트:

na_count <-sapply(x, function(y) sum(length(which(is.na(y)))))

에서는 각 열에 대한 카운트가 포함된 목록을 제공합니다.

na_count <- data.frame(na_count)

다음과 같은 데이터 프레임에서 데이터를 적절하게 출력해야 합니다.

----------------------
| row.names | na_count
------------------------
| column_1  | count

사용해 보십시오.colSums기능.

df <- data.frame(x = c(1,2,NA), y = rep(NA, 3))

colSums(is.na(df))

#x y 
#1 3 

빠르고 쉬운 Tidyverse 솔루션을 사용하여 다음과 같은 이점을 얻을 수 있습니다.NA사용할 모든 열의 개수summarise_all()내 생각에 그것은 사용하는 것보다 훨씬 더 쉽게 해결책을 읽을 수 있습니다.purrr또는sapply

library(tidyverse)
# Example data
df <- tibble(col1 = c(1, 2, 3, NA), 
             col2 = c(NA, NA, "a", "b"))

df %>% summarise_all(~ sum(is.na(.)))
#> # A tibble: 1 x 2
#>    col1  col2
#>   <int> <int>
#> 1     1     2

또는 더 현대적인 것을 사용하는 것.across()함수:

df %>% summarise(across(everything(), ~ sum(is.na(.))))

전체 데이터 프레임에서 NA 수를 계산하려는 경우에도 사용할 수 있습니다.

sum(is.na(df))

에서summary()출력, 함수는 또한 계산합니다.NA그래서 만약 누군가가 그의 합계를 원한다면 이 기능을 사용할 수 있습니다.NA여러 변수의 s.

데이터 프레임의 모든 열에 있는 null 수를 세는 명확한 역방향 방법:

library(tidyverse)
library(purrr)

df %>%
    map_df(function(x) sum(is.na(x))) %>%
    gather(feature, num_nulls) %>%
    print(n = 100)

이 양식은 케빈 오고로스의 것과 약간 다릅니다.

na_count <-function (x) sapply(x, function(y) sum(is.na(y)))

명명된 int 배열로 NA 수를 반환합니다.

sapply(name of the data, function(x) sum(is.na(x)))

사용해 보십시오.

length(df$col[is.na(df$col)])

사용자 rrs 답변이 옳지만 전체 데이터 프레임에 대한 NA 값 수를 얻기 위해 전달하는 데이터 프레임의 특정 열에 있는 NA 값 수만 알려줍니다.

apply(<name of dataFrame>, 2<for getting column stats>, function(x) {sum(is.na(x))})

이것이 효과가 있습니다.

로컬 디렉토리에서 csv 파일을 읽었습니다.다음 코드가 저에게 적용됩니다.

# to get number of which contains na
sum(is.na(df[, c(columnName)]) # to get number of na row

# to get number of which not contains na
sum(!is.na(df[, c(columnName)]) 

#here columnName is your desire column name

각 열의 null 값을 차례로 인쇄하려는 경우 이 값을 사용할 수 있습니다.간단한 해결책.

lapply(df, function(x) { length(which(is.na(x)))})

hut37의 대답과 비슷하지만 사용합니다.purrr꾸러미저는 이 깔끔한 역방향 접근법이 AbiK가 제안한 답변보다 더 단순하다고 생각합니다.

library(purrr)
map_dbl(df, ~sum(is.na(.)))

참고: 타일드(~)는 익명 함수를 만듭니다.그리고 '.'는 익명 함수에 대한 입력을 나타냅니다. 이 경우 data.frame입니다.df.

다음을 사용한 다른 옵션complete.cases다음과 같이:

df <- data.frame(col = c(1,2,NA))
df
#>   col
#> 1   1
#> 2   2
#> 3  NA
sum(!complete.cases(df$col))
#> [1] 1

repref v2.0.2를 사용하여 2022-08-27에 생성됨

이를 사용하여 각 열의 NA 또는 공백 수를 계산할 수 있습니다.

colSums(is.na(data_set_name)|data_set_name == '')

완전성을 위해 당신은 또한 사용할 수 있습니다.useNA표의 인수예를들면table(df$col, useNA="always")모두가 아닌 것으로 간주됩니다.NA케이스와NA하나.

언급URL : https://stackoverflow.com/questions/24027605/determine-the-number-of-na-values-in-a-column