I는 데이터 프레임의 두 세트가 상기 제 1 세트와 같다 :R에있는 평균과 다른 벡터를 기반으로 데이터 프레임을 재주문하는 방법은 무엇입니까?
df1 = subset(mtcars, select="gear")
head(df1)
gear
Mazda RX4 4
Mazda RX4 Wag 4
Datsun 710 4
Hornet 4 Drive 3
Hornet Sportabout 3
번째 세트의 포맷이 같다 :
df2 = t(mtcars)[1:4,]
head(df2)
Mazda RX4 Mazda RX4 Wag Datsun 710 Hornet 4 Drive Hornet Sportabout
mpg 21 21 22.8 21.4 18.7
cyl 6 6 4.0 6.0 8.0
disp 160 160 108.0 258.0 360.0
hp 110 110 93.0 110.0 175.0
df1
의 열 이름의 열 이름들이다 df2
.
나는 gear
에있는 df1
에있는 동일한 자동차를 모두 타고 싶습니다. 그런 다음 차량에 대해서만 mpg
과 disp
의 평균을 계산 한 다음, 평균에서 높음을 기준으로 그룹을 정렬합니다. (gear 3
와 자동차 gear 4
와 것보다 mpg
및 disp
의 높은 평균이 있기 때문에)이 경우
Hornet 4 Drive Hornet Sportabout Mazda RX4 Mazda RX4 Wag Datsun 710
mpg 21.4 18.7 21 21 22.8
cyl 6.0 8.0 6 6 4.0
disp 258.0 360.0 160 160 108.0
hp 110.0 175.0 110 110 93.0
내가이 당신에게 분명하다 바랍니다. 그룹
df1
의 그룹 (
gear
)을
df2
에 적용하고 그룹의 평균을 기준으로
df2
을 주문하는 방법을 모르겠습니다. 감사!
- 원하지 않는 당신의 출력은'gear = 3','gear = 4' ... 등의 컬럼을 갖습니다. 왜냐하면 각'gear'를 그룹으로 취급하기를 원합니까? –
원본'df2 '에는'gear'가 없습니다. 나는 당신이 무엇을 의미 하는지를 안다.'df1'의 데이터에 기초하여'df2'에'gear '라는 새로운 행을 추가하고 그들을 그룹으로 분류하는 것이 좋을까요? – kin182
나는 완전히 이해하지 못하지만'reshape2 :: melt (df2)'와 같은 것을 사용하여 df1과 비슷한 형식으로 만들 것을 제안한다. 'dplyr :: bind_rows' (또는'rbind')를 사용하여 하나의 큰 데이터 프레임으로 만듭니다. 이제'dplyr :: group_by'와'summarize'를 사용할 수 있습니다. 'reshape2 : dcast'가 필요합니다. – epi99