2014-05-25 2 views
-2
aaa<-data.frame(x=c(1,3,1,1,2),stringsAsFactors=FALSE) 

out <- matrix(NA,ncol =2,nrow =3) 
for(i in 1:length(unique(aaa$x))) { 
    out[i,1]<-unique(aaa$x)[i] 
    out[i,2]<-sum(aaa$x==unique(aaa$x)[i]) 
} 
out 
     [,1] [,2] 
    [1,] 1 3 
    [2,] 3 1 
    [3,] 2 1 

로 계산의 계산에 다른 값처럼 취급 될 결과는R은 행 코드를 수정하는 방법

aaa<-data.frame(x=c(1,NA,1,1,2),stringsAsFactors=FALSE) 

결과가 있었다

  [,1] [,2] 
    [1,] 1 3 
    [2,] 2 1 
    [3,] 3 1 

경우했다

  [,1] [,2] 
    [1,] 1 3 
    [2,] 2 1 
    [3,] NA 1 

Stata "tab var1,missing "이 답이 될 것입니다. R에서는 루프를 사용하여 작업을 수행하려고합니다.

답변

2

각 관찰의 발생 횟수를 계산하는 경우 간단한 table을 사용할 수 있습니다.

table(aaa$x, useNA="ifany") 

또는 출력과 비슷한 형식으로 지정하십시오.

as.matrix(as.data.frame(table(aaa$x, useNA="ifany"))) 
# Var1 Freq 
# 1 1 3 
# 2 2 1 
# 3 <NA> 1 

루프가 필요 없습니다.

+0

감사합니다. 테이블 메서드를 알고 있지만 for 루프 메서드가 필요합니다. – stata

+1

@stata 왜 지구상에 누구나 ** for-loop 방법이 필요할까요? 결국 R입니다. – MrFlick

+0

내 함수는 for 루프 메서드를 사용하기 때문에. 감사합니다! – stata