2014-09-14 2 views
0

파일간에 누락되지 않은 데이터 요소 수를 계산하고 큰 데이터 프레임의 두 열만을 하위 집합으로 지정하는 데 도움이 필요합니다.누락되지 않은 항목 수 계산

데이터를 유효한 응답으로 제한 할 수 있었지만 두 개 만 반환하도록 고생했습니다.

나는 http://www.statmethods.net/management/subset.html을 발견했지만 솔루션을 시도했지만 myvars가 내 열 레이블을 포함하지 않았으므로 데이터 벡터 (1:10)를 반환합니다. 내 코드가 있었다 :

myvars <- c("key") 
answer <- data_subset[myvars] 
answer 

그러나 대신에 단지 "키"열 내 데이터 집합을 인쇄, 다음과 같은 오류를 반환 : "오류 [.data.frame (observations_subset, myvars)에서 : 선택한 정의되지 않은 열"과 " 오류 : 개체 '대답'을 찾을 수 없습니다.

마지막으로, 나는 어림셈을 계산하는 방법을 잘 모르겠습니다 .Excel에서는 간단한 "개수 계산"기능이 있으며 SPSS에서는 개수에 따라 집계 할 수 있지만, R에서 제목이 비슷한 명령을 찾지 못했습니다. 내가 데이터를 서브 세트 한 다음에는 이것에 대해 갈 길이 멀었습니다. 1의 열을 추가하고 그 값을 합산하는 것이 었습니다. 그러나 나는 거기에 상상할 수 있습니다. 더 좋은 방법.

도움 주셔서 감사합니다.

+0

당신은 열 이름은'제대로 key'을 철자가 확실하고 실제로 데이터에 존재? '[[''''data_subset [[ "key"]]' –

+0

으로 시도 할 수도 있습니다.''names (data_subset)'를 사용하여 모든 열 이름을 인쇄하십시오. 또는''% in % names (data_subset) '키로 직접 확인하십시오. – shadowtalker

+0

@RichardScriven 두 가지 방법으로 작동해야합니다. '['는'data.frame'을 리턴하고'[['는'vector'를 리턴합니다. – shadowtalker

답변

0

고유 한 어커런스를 계산하려면 table을 사용하십시오.

예를 들어

: 비율에 table를 변환하는 편리한 기능 prop.table

# load the "iris" data set that's built into R 
data(iris) 

# print the count of each species 
table(iris$Species) 

를 적어 둡니다, 그리고 사실 그 테이블은 실제로 크로스 탭을 얻기 위해 두 번째 인수를 취할 수 있습니다. 또한 누락 된 값을 무시하는 대신 고유 한 항목으로 포함하는 인수 useNA이 있습니다.

0

이것이 원하는 것인지 확실하지 않습니다.

여러 데이터로 게시물에 언급 된 일부 데이터 만들기.

set.seed(42) 
d1 <- as.data.frame(matrix(sample(c(NA,0:5), 5*10, replace=TRUE), ncol=10)) 
set.seed(49) 
d2 <- as.data.frame(matrix(sample(c(NA,0:8), 5*10, replace=TRUE), ncol=10)) 

l1 <- mget(ls(pattern="d\\d+")) 

최대 비 누락 요소를 갖는리스트 요소 서브 세트하는 인덱스를 생성 목록 요소로 데이터 집합 목록을 생성

indx <- which.max(sapply(l1, function(x) sum(!is.na(x)))) 

Keylarger (누락되지 않음) 데이터 세트의 하위 집합

key <- c("V2", "V3") 

부분 집합 데이터 세트

l1[[indx]][key] 
# V2 V3 
#1 1 1 
#2 1 3 
#3 0 0 
#4 4 5 
    #5 7 8 

names(l1[indx]) 
#[1] "d2"