반응형
R - 두 개의 데이터 프레임을 연결합니까?
주어진 두 개의 데이터 프레임a
그리고.b
:
> a
a b c
1 -0.2246894 -1.48167912 -1.65099363
2 0.5559320 -0.87898575 -0.15634590
3 1.8469466 -0.01487524 -0.53098215
4 -0.6875051 0.23880967 0.01824621
5 -0.6735163 0.75485292 0.44154092
> b
a c
1 0.4287284 -0.3295925
2 0.5201492 0.3341251
3 -2.6355570 1.7916780
4 -1.3645337 1.3642276
5 -0.4954542 -0.6660001
아래 양식의 새 데이터 프레임을 반환하기 위해 이것들을 연결하는 간단한 방법이 있습니까?
> new
a b c
1 -0.2246894 -1.48167912106676 -1.65099363
2 0.5559320 -0.878985746842256 -0.15634590
3 1.8469466 -0.0148752354840942 -0.53098215
4 -0.6875051 0.238809666690982 0.01824621
5 -0.6735163 0.754852923524198 0.44154092
6 0.4287284 NA -0.32959248
7 0.5201492 NA 0.33412510
8 -2.6355570 NA 1.79167801
9 -1.3645337 NA 1.36422764
10 -0.4954542 NA -0.66600006
데이터 프레임을 병합하고 헤더를 일치시킨 다음 삽입합니다.NA
데이터 프레임의 위치에 대해 inb
헤더가 누락된 위치입니다.
당신은 "rbind"를 원합니다.
b$b <- NA
new <- rbind(a, b)
rbind를 사용하려면 데이터 프레임에 동일한 열이 있어야 합니다.
첫 번째 줄은 데이터 프레임 b에 열 b를 추가합니다.
결과.
> a <- data.frame(a=c(0,1,2), b=c(3,4,5), c=c(6,7,8))
> a
a b c
1 0 3 6
2 1 4 7
3 2 5 8
> b <- data.frame(a=c(9,10,11), c=c(12,13,14))
> b
a c
1 9 12
2 10 13
3 11 14
> b$b <- NA
> b
a c b
1 9 12 NA
2 10 13 NA
3 11 14 NA
> new <- rbind(a,b)
> new
a b c
1 0 3 6
2 1 4 7
3 2 5 8
4 9 NA 12
5 10 NA 13
6 11 NA 14
기능을 사용할 수 있습니다.
bind_rows(a,b)
dplyr 라이브러리에서
플라이어 패키지를 사용해 보십시오.
rbind.fill(a,b,c)
다음은 각 데이터 세트에서 누락된 열을 자동으로 감지하여 모두와 함께 추가한 후 두 데이터 세트를 다시 바인딩하는 간단한 기능입니다.NA
s.
어떤 이유로든 대규모 데이터셋에서는 데이터셋을 사용하는 것보다 훨씬 빠르게 복구할 수 있습니다.merge
기능.
fastmerge <- function(d1, d2) {
d1.names <- names(d1)
d2.names <- names(d2)
# columns in d1 but not in d2
d2.add <- setdiff(d1.names, d2.names)
# columns in d2 but not in d1
d1.add <- setdiff(d2.names, d1.names)
# add blank columns to d2
if(length(d2.add) > 0) {
for(i in 1:length(d2.add)) {
d2[d2.add[i]] <- NA
}
}
# add blank columns to d1
if(length(d1.add) > 0) {
for(i in 1:length(d1.add)) {
d1[d1.add[i]] <- NA
}
}
return(rbind(d1, d2))
}
사용할 수 있습니다.rbind
그러나 이 경우 두 테이블 모두에 동일한 수의 열이 있어야 하므로 다음을 시도하십시오.
b$b<-as.double(NA) #keeping numeric format is essential for further calculations
new<-rbind(a,b)
언급URL : https://stackoverflow.com/questions/8169323/r-concatenate-two-dataframes
반응형
'bestsource' 카테고리의 다른 글
gem_bargplot2의 막대를 값별로 재정렬 (0) | 2023.06.08 |
---|---|
Javascript 패키지의 하위 폴더에서 가져오기 (0) | 2023.06.08 |
Oracle의 숨겨진 기능 (0) | 2023.06.08 |
Oracle Apex를 사용하여 버전 관리 (0) | 2023.06.08 |
엑셀에서 VBA로 한 시트에서 다른 시트로 열을 복사하려면 어떻게 해야 합니까? (0) | 2023.06.08 |