Из ответа другого пользователя можно получить ожидаемый результат, используя:
as.data.frame(purrr::map(df,function(x) paste0(x,"(",round(x/3,2),")")))
A B
1 1.63(0.54) 6(2)
2 20.5(6.83) 1(0.33)
3 18(6) 5(1.67)
4 26.7(8.9) 24(8)
Первоначальный вопрос был неясен.
ORIGINAL
Ожидаемый результат и логический путь неясны.Вот попытка:
Vals<-colSums(df)#I actually think nrow(df) is better
Values<-as.vector(Vals)
as.data.frame(purrr::map2(df,Values,function(x,y) paste0(x,"(",round(x*100/y,2),")")))
Это дает: Это использует суммы столбца, чтобы получить проценты.
A B
1 1.63(2.44) 6(16.67)
2 20.5(30.67) 1(2.78)
3 18(26.93) 5(13.89)
4 26.7(39.95) 24(66.67)