데이터 항목이 R 인 데이터 프레임이 있고 각 하위 세트에 열의 풀에서 두 열의 고유 한 가능한 쌍으로 된 조합이 포함될 때이 데이터 프레임에서 가능한 모든 고유 한 하위 집합을 작성하려고합니다. 원래 데이터 프레임. 즉, 원본 데이터 프레임의 열 수가 Y 인 경우 고유 한 하위 집합의 수는 Y * (Y-1)/2가됩니다. 또한 각 하위 집합의 열 이름이 원래 데이터 프레임에 사용 된 이름이되기를 원합니다. 어떻게해야합니까?데이터 프레임의 서브 세트
-1
A
답변
0
colpairs <- function(d) {
apply(combn(ncol(d),2), 2, function(x) d[,x])
}
x <- colpairs(iris)
sapply(x, head, n=2)
## [[1]]
## Sepal.Length Sepal.Width
## 1 5.1 3.5
## 2 4.9 3.0
##
## [[2]]
## Sepal.Length Petal.Length
## 1 5.1 1.4
## 2 4.9 1.4
...
0
나는 당신의 컬럼의 인덱스를 만들기 위해 combn
를 사용하는 것, 그리고 lapply
은 data.frame의 하위 집합을하고 list
구조에 저장할 수 있습니다. 예 :
# Example data
set.seed(1)
df <- data.frame(a = sample(2,4,repl=T) ,
b = runif(4) ,
c = sample(letters ,4),
d = sample(LETTERS , 4))
# Use combn to get indices
ind <- combn(x = 1:ncol(df) , m = 2 , simplify = FALSE)
# ind is the column indices. The indices returned by the example above are (pairs in columns):
#[,1] [,2] [,3] [,4] [,5] [,6]
#[1,] 1 1 1 2 2 3
#[2,] 2 3 4 3 4 4
# Make subsets, combine in list
out <- lapply(ind , function(x) df[,x])
[[1]]
# a b
#1 1 0.2016819
#2 1 0.8983897
#3 2 0.9446753
#4 2 0.6607978
[[2]]
# a c
#1 1 q
#2 1 b
#3 2 e
#4 2 x
[[3]]
# a d
#1 1 R
#2 1 J
#3 2 S
#4 2 L
[[4]]
# b c
#1 0.2016819 q
#2 0.8983897 b
#3 0.9446753 e
#4 0.6607978 x
[[5]]
# b d
#1 0.2016819 R
#2 0.8983897 J
#3 0.9446753 S
#4 0.6607978 L
[[6]]
# c d
#1 q R
#2 b J
#3 e S
#4 x L
+1
당신은'lapply'를 필요로하지 않습니다 :'combn (x = 1 : ncol (df), m = 2, FUN = function (x) df [, x], simplify = FALSE)' – Roland
+0
@ 'combn' 함수를 제공 할 수 있다는 것을 잊어 버려라. –
관련 문제
- 1. 데이터 프레임의 서브 세트 R
- 2. 데이터 프레임의 서브 세트 설정에 대한 도움말
- 3. 데이터 프레임의 서브 세트 추출 R
- 4. 하나의 행에있는 데이터 프레임의 서브 세트의 서브 세트
- 5. 다른 데이터 프레임의 정보를 사용하는 서브 세트 데이터 [r]
- 6. 다른 데이터 프레임의 내용을 기반으로 데이터 프레임 서브 세트
- 7. R - 데이터 프레임의 변수와 다른 행렬의 값에서 행렬을 서브 세트
- 8. DataParser 객체로 데이터 프레임의 서브 세트 가져 오기
- 9. 열 유형을 기반으로 데이터 프레임의 서브 세트 변수
- 10. R- 데이터 프레임의 열 값을 기반으로하는 데이터의 서브 세트 라인
- 11. 조건부 서브 세트 및 반짝이는 데이터 프레임의 새 변수 계산
- 12. GPS 데이터 서브 세트
- 13. 서브 샘플 데이터 세트
- 14. 목록을 기반으로 한 데이터 세트 서브 세트
- 15. 서브 세트 반응식으로 구성된 데이터 프레임
- 16. 조건문을 사용하여 데이터 프레임의 서브 세트를 반환
- 17. 두 열의 값이 두 번째 데이터 프레임의 값과 일치 할 때 데이터 프레임 서브 세트
- 18. 모든 서브 세트 세트 계산하기 (전력 세트)
- 19. 외부 텍스트 파일을 참조하여 SAS에 데이터 세트 서브 세트
- 20. 데이터 서브 세트 용 스크립트 생성하기
- 21. R - 조건 일 경우 데이터 서브 세트
- 22. 날짜별로 R에 데이터 테이블을 서브 세트
- 23. 코어 데이터 오브젝트의 서브 세트 지속
- 24. R 행마다 여러 조건의 서브 세트 데이터
- 25. 반복을 통한 데이터 프레임 사전 서브 세트
- 26. 열 내용을 이용하여 데이터 프레임을 서브 세트
- 27. 업로드 된 데이터 프레임을위한 R의 서브 세트
- 28. % in % %를 사용하는 데이터 서브 세트
- 29. 동적 열의 데이터 집합 서브 세트
- 30. 데이터 프레임 목록에서 데이터 프레임의 전체 사례를 서브 셋팅
안녕하세요. 여기에 새로 온 경험이 있으시면 [** about **] (http://stackoverflow.com/about) 및 [** FAQ **] (http://stackoverflow.com/faq) 섹션을 읽어보십시오. 귀하가 최대한 활용할 수 있도록 웹 사이트의 [** 훌륭한 재현 가능한 예제를 만드는 방법 **] (http://stackoverflow.com/q/5963269/1478381)도 읽고 그에 맞게 질문을 업데이트하십시오! OP가 이미 시도한 것을 보여주지 않았거나 원하는 출력이 다운 voted되거나 닫히는 경향이있는 게시 된 질문. 다음 번에 당신을 경고합니다. –
새로운 데이터 프레임에 다른 열을 생성하기 위해 각 열 쌍에 어떤 기능이 적용됩니까? –