주어진 열 X에 대해 10k 개의 행을 포함하는 데이터 프레임이 있습니다. 중복 된 값이 있습니다.이 열에서이 값을 포함하는 하나의 행만 무작위로 선택하려면 어떻게해야합니까?데이터 프레임에서 임의의 행을 선택합니다.
5
A
답변
6
귀하의 질문은 명확하지 않지만 "중복 클래스"당 하나의 (무작위로 선택한) 행을 유지하면서 전체 데이터 프레임을 서브 샘플링한다고 가정합니다.
library(plyr)
subsampled_data <- ddply(mydata,.(X),
function(x) {
x[sample(nrow(x),size=1),]
})
같은 뭔가 (는 테스트하지!) 작업을해야
6
나의 첫번째 본능 벤의 우아한 ddply
솔루션과 같이했을 것이다. 그러나 이제는 대용량 데이터 세트를 사용 했으므로 확실히 빠른 방법이 있습니다.
RemoveDups <- function(df, column) {
inds = sample(1:nrow(df))
df = df[inds, ]
dups = duplicated(df[, column])
df = df[!dups, ]
inds = inds[!dups]
df[sort(inds, index=T)$ix, ]
}
는 (많은 고유 한 값으로 여기에) 일부 데이터를 시뮬레이션 :
> system.time(ddply(data, 'X1', function(x) x[sample(nrow(x), size=1), ]))
user system elapsed
3.264 0.921 4.315
> system.time(RemoveDups(data, 'X1'))
user system elapsed
0.375 0.025 0.399
:
n.row = 10^6
n.col = 3
set.seed(12345)
data = data.frame(matrix(sample(1000, n.row*n.col, replace=T), nrow=n.row))
이 두 방법을 비교 여기에 여러 번 빨리 당신이 많은 고유 값이있는 경우 것 중 하나입니다
+0
우아한! 최고, 고마워요 존 – Rad
관련 문제
- 1. UITable 여러 선택보기. 선택한 행을 사용하여 임의의 행을 자동으로 선택합니다.
- 2. R 데이터 프레임에서 특정 행을 선택
- 3. 임의의 인수 값의 행을 데이터 프레임에 추가
- 4. UIPickerView - 행을 너무 빠르게 선택합니다.
- 5. R을 사용하여 누락 된 관측치가 일치하는 데이터 세트의 행을 선택합니다.
- 6. 데이터 프레임에서 n과 n + 1 행을 삭제하는 방법은 무엇입니까?
- 7. 데이터 프레임에서 일치하지 않는 행을 어떻게 선택할 수 있습니까?
- 8. R 데이터 프레임에서 지연
- 9. 데이터 프레임에서 get() 사용
- 10. 대형 데이터 프레임에서 지표 생성
- 11. didSelectRowAtIndexPath 다른 행을 선택할 때 선택합니다.
- 12. 임의의 순서로 행을 반환
- 13. R의 데이터 프레임에서 모든 문자열을 제거 하시겠습니까?
- 14. mysql에서 현재 날짜보다 오래된 행을 선택합니다.
- 15. CTRL-A는 DataGridView에서 숨겨진 행을 선택합니다.
- 16. 오라클은 contains 키워드를 사용하여 모든 행을 선택합니다.
- 17. 임의의 데이터 검색
- 18. 데이터 프레임에서 impera 나누기 R
- 19. 데이터 프레임에서 짝수 번호를 선택하십시오.
- 20. 하나의 데이터 프레임에서 데이터 세트로 결과 이동
- 21. R 데이터 프레임에서 행 범위 선택
- 22. 선택한 열만있는 데이터 프레임에서 유일 함
- 23. 테이블에서 임의의 행을 어떻게 선택합니까?
- 24. 데이터베이스에서 임의의 행을 에코하려면 어떻게해야합니까?
- 25. R의 데이터 프레임에서 데이터 테이블로의 설정 작업 포팅 : 중복 된 행을 식별하는 방법?
- 26. Oracle PL/SQL은 고유 한 레코드와 임의의 레코드 하나만 선택합니다.
- 27. regexp_like는 속성 문자열에 여러 단어가 포함 된 행을 선택합니다.
- 28. MySQL의 각 'group by'카테고리에서 임의의 수의 임의의 행을 검색하십시오.
- 29. 최대 값을 가진 데이터 프레임에서 데이터 프레임에서 열을 선택하는 방법은 무엇입니까?
- 30. SQL 임의의 행을 선택할 때 도움말 가입
OP의 (수수한) 질문에 대한이 해석은 내 생각보다 더 가능성이 높습니다.이 질문에 대해서는 df [sample (which (df $ X == myVal), 1)]을 제안하려고합니다. – joran
감사합니다 얘들 아, 내가 벤의 제안을, 조란, 어떻게 모든 칼럼 값에 적용하려는 경우 myVal 귀하의 미리보기에서 내 열 X, 예를 들어 수십 수백 가지 의미와 함께 변경 제안에 노력하고 있어요 8s etc. etc – Rad
@Rad Ben의 솔루션이이를 처리 할 것입니다. 내 것이 아니다. 귀하의 질문을 다르게 해석했습니다. – joran