programing

두 개의 열을 기준으로 두 개의 데이터 프레임을 결합하려면 어떻게 해야 합니까?

jooyons 2023. 7. 9. 11:05
반응형

두 개의 열을 기준으로 두 개의 데이터 프레임을 결합하려면 어떻게 해야 합니까?

나는 내가 사용할 수 있다는 것을 압니다.plyr그리고 데이터 프레임을 결합하는 친구들, 그리고merge두 개의 데이터 프레임을 두 개의 열을 기준으로 여러 개의 열로 병합하는 방법을 아직 모릅니다.

자세한 내용은?merge다음 중 어떤 것이 명시됩니까?

By default the data frames are merged on the columns with names they both have, 
 but separate specifications of the columns can be given by by.x and by.y.

이것은 분명히 다음을 암시합니다.merge둘 이상의 열을 기준으로 데이터 프레임을 병합합니다.설명서에 제시된 마지막 예:

x <- data.frame(k1=c(NA,NA,3,4,5), k2=c(1,NA,NA,4,5), data=1:5)
y <- data.frame(k1=c(NA,2,NA,4,5), k2=c(NA,NA,3,4,5), data=1:5)
merge(x, y, by=c("k1","k2")) # NA's match

이 예는 의 사용을 시연하기 위한 것입니다.incomparables여러 열을 사용하여 병합하는 방법도 보여 줍니다.각 열에 별도의 열을 지정할 수도 있습니다.x그리고.y사용.by.x그리고.by.y.

이것이 도움이 되길 바랍니다.

df1 = data.frame(CustomerId=c(1:10),
             Hobby = c(rep("sing", 4), rep("pingpong", 3), rep("hiking", 3)),
             Product=c(rep("Toaster",3),rep("Phone", 2), rep("Radio",3), rep("Stereo", 2)))

df2 = data.frame(CustomerId=c(2,4,6, 8, 10),State=c(rep("Alabama",2),rep("Ohio",1),   rep("Cal", 2)),
             like=c("sing", 'hiking', "pingpong", 'hiking', "sing"))

df3 = merge(df1, df2, by.x=c("CustomerId", "Hobby"), by.y=c("CustomerId", "like"))

가정하면df1$Hobby그리고.df2$like같은 뜻입니다.

조인 명령(dplyr)을 사용할 수도 있습니다.

예:

new_dataset <- dataset1 %>% right_join(dataset2, by=c("column1","column2"))

언급URL : https://stackoverflow.com/questions/6709151/how-do-i-combine-two-data-frames-based-on-two-columns

반응형