2016-06-14 2 views
8

배치 ID가있는 데이터 프레임과 각 배치에서 수행 된 6 개의 테스트 결과가 있습니다. 데이터는 다음과 같습니다R : 데이터 프레임의 행 당 NAs 수를 계산합니다.

batch_id test1 test2 test3 test4 test5 test6 
001  0.121  NA 0.340 0.877 0.417 0.662 
002  0.229 0.108  NA 0.638  NA 0.574 

나는 각각에 대해 얼마나 많은 수 NAs 계산하는 방법을 찾고 있어요

(이 dataframe BATCH_ID 당 하나의 행에 몇 백 개 행이) batch_id (각 행에 대해). 나는 이것이 R 코드의 몇 라인을 가지고 할 수 있어야한다고 생각하지만, 실제로 그것을 코딩하는 데 어려움을 겪고있다. 아이디어가 있으십니까?

df$na_count <- apply(df, 1, function(x) sum(is.na(x))) 
+1

@BenBolker 일반적으로 최근 게시물에 대한 답변이 복제 된 것보다 더 적절하거나 현대적이거나 효율적인 것으로 나타났습니다. 특히 중복 게시물이 몇 년 된 경우 (여기서는 해당되지 않음). 그러나이 특정 사례에서는 링크 된 질문에서이 게시물의 OP와 달리 특별히 'dplyr'솔루션을 요청했기 때문에 우리가 복제본을 다루고 있는지조차 확신하지 못합니다. – RHertel

+0

이 특별한 질문은 오래되지 않았지만 (올해 2 월) * * 답변 * (특히 @ windrunn3r.1990의 답)은 많이 겹칩니다. 나는/우리가 재개하기로 투표해야합니까? –

+0

@BenBolker 솔루션을 검색 할 때 링크 된 질문이 표시되지 않았습니다. Justin의 질문에 대한 대답은 제가 찾고있는 것입니다. 내 질문을 삭제해야합니까? – Shark7

답변

14

당신은 batch_idNA 값의 수를 포함하는 데이터 프레임에 새 열을 추가 할 수

rowSums(is.na(dat)) 

여기서 dat은 데이터 프레임의 이름입니다.

+1

감사. 그거야. 나는 이것을 조금 더 간단하게 사용했다 :
'df $ na_count <- apply (is.na (df), 1, sum)' – Shark7

26

당신은이 명령으로 각 행의 NA의 셀 수 :

관련 문제