2016-08-06 1 views
-3

data.table의 누락 된 값 NA에 문제가 있습니다. mean (x) BY = z를 사용할 때 z의 같은 값을 가진 그룹에서 관찰의 일부가 x = NA이면 NA가됩니다. 내가 어떻게 대하면 돼?data.table에 NA가있는 문제

+0

이 Q가'mean'하지만 나에 data.table''특정하지 않습니다 어떻게'NA'이 R''으로 처리됩니다 일반적으로 제발,''mean'을보세요. – Uwe

답변

2

예제 데이터를 제공하지 않으므로 수행하려는 작업을 추측하기가 어렵습니다. 그러나 다음은 계산에서 NA 값을 제외하는 예제입니다. 데이터 테이블은 첫 번째 열의 두 번째 행에서 NA 값이 dt

dt = data.table(mtcars)[1:6][2, mpg := NA][]     

    mpg cyl disp hp drat wt qsec vs am gear carb 
1: 21.0 6 160 110 3.90 2.620 16.46 0 1 4 4 
2: NA 6 160 110 3.90 2.875 17.02 0 1 4 4 
3: 22.8 4 108 93 3.85 2.320 18.61 1 1 4 1 
4: 21.4 6 258 110 3.08 3.215 19.44 1 0 3 1 
5: 18.7 8 360 175 3.15 3.440 17.02 0 0 3 2 
6: 18.1 6 225 105 2.76 3.460 20.22 1 0 3 1 

을 고려하십시오. 첫 번째 열의 평균을 계산하는 데 관심이 있다면 na.rm을 사용할 수 있습니다.

mean(dt$mpg, na.rm = TRUE) 
#[1] 20.06129 

또는 그룹 별 계산을 수행 할 때 :

dt[, mean(mpg, na.rm = TRUE), by=cyl] 
# cyl  V1 
# 1: 6 20.16667 
# 2: 4 22.80000 
# 3: 8 18.70000 
관련 문제