взять процент строки - PullRequest
       15

взять процент строки

1 голос
/ 19 апреля 2020

У меня есть матрица, и я хочу взять вероятность строк, а не столбцов, есть ли достойный способ сделать это

mtcars1 <- as.matrix(head(mtcars))
a <- mtcars1[1,];a
a[] <- paste0(round(prop.table(mtcars1[1,]),digits=2)*100,"%");a

первая строка ожидаемых результатов

  mpg   cyl  disp    hp  drat    wt  qsec    vs    am  gear  carb 
 "6%"  "2%" "49%" "33%"  "1%"  "1%"  "5%"  "0%"  "0%"  "1%"  "1%" 

большое спасибо заранее

Ответы [ 3 ]

1 голос
/ 19 апреля 2020

Вы можете использовать prop.table для всей матрицы по строкам:

round(prop.table(mtcars1, 1) * 100, 2)

#                   mpg  cyl disp   hp drat   wt qsec   vs   am gear carb
#Mazda RX4         6.38 1.82 48.6 33.4 1.19 0.80 5.00 0.00 0.30 1.22 1.22
#Mazda RX4 Wag     6.37 1.82 48.5 33.4 1.18 0.87 5.16 0.00 0.30 1.21 1.21
#Datsun 710        8.78 1.54 41.6 35.8 1.48 0.89 7.17 0.39 0.39 1.54 0.39
#Hornet 4 Drive    5.02 1.41 60.5 25.8 0.72 0.75 4.56 0.23 0.00 0.70 0.23
#Hornet Sportabout 3.17 1.36 61.0 29.6 0.53 0.58 2.88 0.00 0.00 0.51 0.34
#Valiant           4.69 1.56 58.4 27.2 0.72 0.90 5.24 0.26 0.00 0.78 0.26
1 голос
/ 19 апреля 2020

Мы также можем сделать

library(magrittr)
prop.table(mtcars1, 1) * 100 %>%
   round(2)
1 голос
/ 19 апреля 2020

Предложите вам установить «форматируемый» пакет для достижения того же самого и многих других, использующих этот пакет. После установки загрузите пакет, как показано ниже, и точно ответьте на свой запрос, определив пример строки

library(formattable)

sample_row<-c(0.23,0.45,0.67)

percent(sample_row)

## [1] 23.00% 45.00% 67.00%
...