2016-10-17 3 views
0

이 데이터 프레임이 있으며 각 행 (예 : %)을 계산하고 싶습니다. 동일한 데이터 프레임에서이 데이터 프레임을 변형하고 싶습니다 만 %에 대해서만 변형하고 싶습니다. 다만이 같은 이미지행/열의 %를 계산하는 방법 (데이터 프레임)

enter image description here

:

enter image description here

내가 어떻게 할 수 있습니까?

데이터 : 당신이 특별히 % 기호가 포함하려면 청소부 패키지에서 adorn_crosstab() 시도

dat <- data.frame(
    county = c("FRANCIA", "GRECIA", "ITALIA"), 
    `310` = c(73, 165, 347), 
    `320` = c(13, 80, 118), 
    `330` = c(10, 57, 94), 
    `340` = c(28, 116, 177), 
    check.names = FALSE 
) 
+0

당신은이 게시물을 검토 할 수 있습니다 http://stackoverflow.com/questions/23568142/row-and-column-sums-in-r – JJFord3

+0

'DF/rowSums (df) * 100' – 989

답변

0

:

library(janitor) 
dat %>% 
    adorn_crosstab(show_n = FALSE, digits = 0) 

    county 310 320 330 340 
1 FRANCIA 59% 10% 8% 23% 
2 GRECIA 39% 19% 14% 28% 
3 ITALIA 47% 16% 13% 24% 

당신이 numeric -class로 비율을 유지하려면를, Calculate row-wise proportions을 참조하십시오.

(면책 조항 :이 함수의 저자 -하지만 난 그게 원하는 결과를 얻을 수있는 가장 빠른 방법이라고 생각) prop.table를 사용하여,

+0

도움을 주신 모든 분들께 감사드립니다! :) – Marcusson

0

자료 패키지를. 먼저 데이터 프레임을 행렬로 변환합니다. 그런 다음 cbind을 사용하여 국가 열을 복원하는 데이터 프레임으로 돌아갑니다.

cbind(Country = dat[, 1], as.data.frame(prop.table(as.matrix(dat[, 2:5]), 1))) 

출력 :

Country  310  320  330  340 
1 FRANCIA 0.5887097 0.1048387 0.08064516 0.2258065 
2 GRECIA 0.3947368 0.1913876 0.13636364 0.2775120 
3 ITALIA 0.4714674 0.1603261 0.12771739 0.2404891 
+0

안녕하세요 @Marcusson이 답변이 문제를 해결 한 경우 [확인] (http://meta.stackexchange.com/q/5234/179419)를 클릭하여 확인하십시오. 이는 해결책을 찾았으며 응답자와 자신에게 어느 정도의 평판을 제공한다는 것을 더 넓은 커뮤니티에 나타냅니다. 이를 수행 할 의무는 없습니다. – mpalanco

관련 문제