2011-04-05 3 views
3

R의 데이터 프레임에 관한 질문. 원래 데이터 프레임의 위치 (행 번호)와 함께 데이터 프레임에서 행을 추출하려고합니다. 아이디어는 이전 데이터 프레임에서 추출한 행 정보와 이전 데이터 프레임의 행 위치를 포함하는 새 데이터 프레임을 만드는 것입니다. 내가하고 싶은 것을R 데이터 프레임의 행 번호 얻기

patchLocalNo <- patchList[which(patchListTop5$sensitivity == patchLocalSpec),] 

은 어떤 조건을 만족 patchList에서 행 번호를 가지고 가고, patchLocalNo의 컬럼에 추가합니다.

미리 감사드립니다. 온라인에서 검색하여 동료에게 질문했습니다. 필자가 perl에서 데이터를 사전 처리하는 방법을 생각해 볼 수 있습니다.

+1

일부 샘플 데이터와 당신은 매우 도움이 될 것입니다 싶습니다 출력의 예입니다. –

답변

8

나는 당신이 당신 자신의 질문에 대답했다고 생각합니다.

결과의()는 추출 할 행 번호가있는 벡터입니다.

df <- data.frame(x = runif(20)) 

w <- which(df$x > 0.9) 
w 
[1] 9 11 14 16 20 

data.frame(which=w, df=df[w, ]) 

    which  df 
1  9 0.9437138 
2 11 0.9995509 
3 14 0.9237888 
4 16 0.9526003 
5 20 0.9191727 
+0

OP는 단일 값뿐만 아니라 전체 행과 일치하는 것을 찾고 있으며 검색된 값에 행 번호를 추가하려고합니다. – Benjamin

+1

@Benjamin 질문에서 완전히 명확하지는 않지만 그럴 수도 있습니다. 어쨌든, 예제 코드가이를 수행 할 것입니다 - 부울 문과 일치하는 데이터 프레임의 행 번호를 식별하고이를 추출 된 행에 추가하십시오. 문제에 대한 더 나은 사양 및 샘플 데이터가 없으면 답을 개선하는 분명한 방법을 생각할 수 없습니다. – Andrie

+0

제공된 솔루션이 내 스크립트에서 작동합니다. "부울 문과 일치하는 데이터 프레임의 행 번호를 식별하고이를 추출 된 행에 추가합니다"는이 솔루션의 기능입니다. – wespiserA

1

당신은 코드의 하나 개 또는 두 개의 라인으로이 작업을 수행 할 수 있습니다

rNo <- as.integer(rownames(patchList[which(patchListTop5$sensitivity == patchLocalSpec),])) 
patchLocalNo <- cbind(patchLocalNo[rNames,], rNo)