2013-12-15 4 views
0

"항목"이라는 변수가 있으며 (111, 112, 113, 114 등) 레이블이 붙은 수준이 있습니다. 각 항목은 각 주제마다 하나씩 20 회 반복됩니다. 항목은 행에 있으며 각각은 종속 변수 (RT)에 링크됩니다. 일부 항목을 삭제해야한다는 사실을 발견했습니다 (높은 오류율). 데이터를 삭제하거나 제외하기 위해 데이터 프레임에서 항목 (111, 114, 222 및 319)을 제외하기 위해 R에 작성해야하는 코드는 무엇이며 이러한 항목 및 해당 RT없이 분석을 실행할 수 있습니다. 나는 mydata을 다음과 같은 코드를 실행 시도,하지만 그들은 작동하지 않았다 :변수에서 레이블이있는 수준 삭제 R

Deleted <- droplevels(mydata[mydata$Item != "111, 114, 222, 319", ]) 
    summary(Deleted) 

"삭제"쇼의 요약은 여전히 ​​이러한 항목

가 나는 또한

Deleted <- names(mydata$Item) %in% c("111", "114", "214") 
newdata <- qp[!Deleted] 
summary(newdata) 

을 시도 보여 요약 후 다음 내용을 얻습니다.

Error in z[[i]] : subscript out of bounds 
In addition: Warning message: 
In max(unlist(lapply(z, NROW))) : 
no non-missing arguments to max; returning -Inf 

및 레벨()

levels(newdata$Item) 
NULL 

나는 뭔가를 놓치고 있다고 생각하지만, 나는 그것을 이해할 수 없다!

답변

1

: 다음

set.seed(1) 
mydata <- data.frame(item=rep(100:400,each=20), RT=sample(0:100,6020, replace=T)) 

모두가 같은 것을 만들어 다음

to.delete <- mydata$item %in% c(111,114,222,319)    # two steps 
scrubbed.1 <- mydata[!to.delete,] 

scrubbed.2 <- mydata[!(mydata$item %in% c(111,114,222,319)),] # same, one step 

# @MatthewLundberg's approach (he left out a comma before the right bracket...] 
scrubbed.3 <- droplevels(mydata[!(mydata$item %in% c(111,114,222,319)),]) 

identical(scrubbed.1,scrubbed.2) 
# [1] TRUE 
identical(scrubbed.1,scrubbed.3) 
# [1] TRUE 

첫 번째 접근 방식은 실패를 df$item을 문자열 "111, 114"와 비교했기 때문에 , 222, 319 ". 해당 항목과 일치하는 항목이 없으므로 삭제되지 않습니다.

+0

나는 당신이 제안한 것을 따랐지만, 다른 모든 독립 변수들을 제외하고 결국 mydata는 끝났다. 또한 항목 레이블이 순서에 맞지 않습니다. 즉, 각 항목은 조건에 대한 링크 인 특정 번호로 지정됩니다. 예를 들어 5 가지 조건이 있고 각 조건에는 24 가지 항목이 포함되므로 조건 1은 111에서 134, 조건 2 (211-234) 등으로 표시됩니다. set.seed 함수에 모든 변수를 포함하고 항목 레이블 지정을 표시해야한다고 생각하지만이 문제를 올바르게 수행하는 방법을 모르겠습니다. – ama

+0

위의 코드의 처음 두 줄은 메서드를 설명하기위한 샘플 데이터 집합을 만드는 것입니다. 이 예제의 데이터 프레임'mydata'는 여러분의 버전 인'mydata '와 아무런 관련이 없습니다. – jlhoward

+0

두 번째 및 세 번째 코드가 효과적이었습니다! 고맙습니다! – ama

0

나는 당신이 원하는 의심이 :

다음과 같이 mydata을 감안할 때
Deleted <- droplevels(mydata[!(mydata$Item %in% c(111, 114, 222, 319))]) 
+0

시도했지만 작동하지 않았습니다. "오류가 있습니다. [.data.frame' (mydata,! mydata $ Item % in % c (111, 114, 222, 319))) : 정의되지 않은 열이 선택되었습니다. "111, 114, etc."문제는 무엇이라고 생각합니까? – ama