R 如何计算数据集中每个答案的百分比,并在括号中显示百分比

R 如何计算数据集中每个答案的百分比,并在括号中显示百分比,r,R,我想知道如何计算数据集中每个答案的百分比,然后在括号中显示百分比。我可以编写什么代码来实现这一点 这是我正在使用的数据集 A B C D 50% 26.73194 5.5 21.50 9.150 5% 18.91642 1.6 4.55 7.645 95% 31.14233 21.3 56.30 10.570 我想计算数据集中所有数字的百分比,数字39938等于100% 然后,我想在每个数字旁边的括号中显示百分比 我想要实现的数据集如下

我想知道如何计算数据集中每个答案的百分比,然后在括号中显示百分比。我可以编写什么代码来实现这一点

这是我正在使用的数据集

           A    B     C      D
50% 26.73194  5.5 21.50  9.150
5%  18.91642  1.6  4.55  7.645
95% 31.14233 21.3 56.30 10.570
我想计算数据集中所有数字的百分比,数字39938等于100%

然后,我想在每个数字旁边的括号中显示百分比

我想要实现的数据集如下所示:

            A            B           C             D 
50% 26.73194(0.066)  5.5(0.014) 21.50(0.054)  9.150(0.002) 
5%  18.91642(0.047)  1.6(0.004)  4.55(0.001)  7.645(0.017) 
95% 31.14233(0.77)   21.3(0.054) 56.30(0.14) 10.570(0.025)
试试这个:

library(dplyr)

df %>%
  mutate_all(~paste0(.x, '(', round(.x * 100 / sum(.x)), ')'))

从另一个用户的回答中,可以使用以下方法获得预期输出:

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)
最初的问题不清楚

原创

预期输出和逻辑路径尚不清楚。以下是一个尝试:

 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),")")))

这个问题没有说得很清楚,但我想你想要这个:

df1[] <- lapply(df1, function(x) {paste0(x,"(",round(x/3,2),")")})

除以三是因为根据OP,300的值应该对应于100%。

1.63如何等于54%相关问题-NA如何等于20.50?如果你想得到好的答案,你应该对你的例子做一些质量检查。什么包包含mutate\u all,因为我在R
dplyr
中找不到它。当我尝试此操作时,我收到错误消息:error in UseMethod(“tbl_vars”):没有适用于“tbl_vars”的方法应用于类“c”(“矩阵”、“双精度”、“数值”)的对象。这不会产生与问题中所示相同的输出。OP应该更好地阐明他们实际想要做什么。@M.G使用as_tibble()函数将您的数据帧转换为tibble。我已经尝试过了,但没有得到预期的结果。我已经更改了我原来的帖子,我如何更改代码以获得我想要的结果
df1[] <- lapply(df1, function(x) {paste0(x,"(",round(x/3,2),")")})
> df1
           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)