많은 data.frame 병합
중복 가능:
목록의 여러 데이터 프레임을 동시에 병합
예data.frames
:
df1 = data.frame(id=c('1','73','2','10','43'),v1=c(1,2,3,4,5)) <br>
df2 = data.frame(id=c('7','23','57','2','62','96'),v2=c(1,2,3,4,5,6)) <br>
df3 = data.frame(id=c('23','62'),v3=c(1,2)) <br>
참고:id
각 data.frame마다 고유합니다.결과 행렬이 다음과 같이 생겼으면 합니다.
1 1 NA NA
2 3 4 NA
7 NA 1 NA
10 4 NA NA
23 NA 2 1
43 5 NA NA
57 NA 3 NA
62 NA 5 2
73 2 NA NA
96 NA 6 NA
이 경우 3개의 데이터셋만 보여주고, 실제로는 그 중 적어도 22개의 데이터셋을 가지고 있기 때문에 마지막에는 nx(22+1)의 행렬을 원합니다. 여기서 n은 모든 22개 데이터셋의 id 수입니다.
2개의 데이터셋이 주어지면, 그 데이터셋을 가져와야 합니다.ids
첫번째 열과 두번째 열과 세번째 열은 값으로 채워집니다. 만약 값이 존재하지 않는다면 입력합니다.NA
대신.
그것들을 A에 넣습니다.list
사용.merge
와 함께Reduce
Reduce(function(x, y) merge(x, y, all=TRUE), list(df1, df2, df3))
# id v1 v2 v3
# 1 1 1 NA NA
# 2 10 4 NA NA
# 3 2 3 4 NA
# 4 43 5 NA NA
# 5 73 2 NA NA
# 6 23 NA 2 1
# 7 57 NA 3 NA
# 8 62 NA 5 2
# 9 7 NA 1 NA
# 10 96 NA 6 NA
보다 간결한 버전을 사용할 수도 있습니다.
Reduce(function(...) merge(..., all=TRUE), list(df1, df2, df3))
언급URL : https://stackoverflow.com/questions/14096814/merging-a-lot-of-data-frames
'programing' 카테고리의 다른 글
Woocommerce 3에서 주문에서 선택한 변경 속성 가져오기 (0) | 2023.10.11 |
---|---|
액세스 거부됨예외:사용자에게 다음을 수행할 권한이 없습니다: 람다:함수 호출 (0) | 2023.10.11 |
창문은 어떻게 만드나요?크롬 37에서 쇼모델 대화상자 작동? (0) | 2023.10.11 |
YouTube iframe API: HTML에 이미 있는 iframe 플레이어를 제어하려면 어떻게 해야 합니까? (0) | 2023.10.11 |
iPhone, iPod Touch 및 iPad(iOS) 애플리케이션을 개발하는 데 사용할 수 있는 프로그래밍 언어는 무엇입니까? (0) | 2023.10.11 |