为 r 中的每一列动态创建百分比

罗汉巴厘岛

我有以下数据:

library(dplyr)
group_1 <- c(1,1,2,2,1,1,2,2)
group_2 <- c("A","A","A","A","B","B","B","B")
val <- c(sample(8))
xyz <- c(sample(8))
abc <- c(sample(8))
def <- c(sample(8))
ab23 <- c(sample(8))

df <- data.frame(group_1,group_2,val,xyz,abc,def,ab23)

df <- df %>% group_by(group_1,group_2) %>%
      mutate(val_per = val/sum(val,na.rm = TRUE),
             xyz_per = xyz/sum(xyz,na.rm = TRUE),
             abc_per = abc/sum(abc,na.rm = TRUE),
             def_per = def/sum(def,na.rm = TRUE),
             ab23_per = ab23/sum(ab23,na.rm = TRUE))

我不想改变新列来为每列创建百分比。有没有办法创建新列,其中每列都有百分比。

罗纳克·沙阿

你可以这样做across-

library(dplyr)

df %>%
  group_by(group_1,group_2) %>%
  mutate(across(.fns = prop.table, .names = '{col}_per')) %>%
  ungroup

#  group_1 group_2   val   xyz   abc   def  ab23 val_per xyz_per abc_per
#    <dbl> <chr>   <int> <int> <int> <int> <int>   <dbl>   <dbl>   <dbl>
#1       1 A           4     5     2     3     1   0.667   0.714   0.222
#2       1 A           2     2     7     6     3   0.333   0.286   0.778
#3       2 A           8     4     3     7     7   0.889   0.364   0.429
#4       2 A           1     7     4     1     5   0.111   0.636   0.571
#5       1 B           5     6     5     2     8   0.455   0.857   0.455
#6       1 B           6     1     6     5     6   0.545   0.143   0.545
#7       2 B           7     8     8     4     2   0.7     0.727   0.889
#8       2 B           3     3     1     8     4   0.3     0.273   0.111
# … with 2 more variables: def_per <dbl>, ab23_per <dbl>

prop.table(x)与 相同x/sum(x)

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

如何将百分比列添加到R中数据框中的每一列

以块为单位绘制R中的百分比

在Stata中为来自R代码的分类变量创建百分比条形图

在Power BI中显示为另一列的百分比

在R中动态计算列的百分比

R函数找到一列中离群值的百分比吗?

基于数据帧R的子集的一列中“分类值”的百分比

如何在数据框中创建一个新列,并根据前一列中结果的百分比将其设置为1或0?

R - 计算列中的观察值(字符串)并计算为总体观察值的百分比

将数据汇总为R中并排条形图的百分比

当所有值都在R中的数据框的同一列中时,计算百分比

在 R 中,如何从多个数据帧中得出一列的平均百分比统计信息?

计算R中每列的负数,0和正值的数量和百分比

如何利用两个分类列在 R 中创建一个百分比列?

根据值的百分比将其分组为分位数,并在R?中可视化

扩展R的摘要函数(或创建具有类似输出的新函数)以将因子显示为总数的百分比

如何以熊猫为单位将一列中值出现的百分比转换为新列

如何在 R 中创建百分比范围

为R中的一个excel文件中的每一列创建新工作表

按一列分组,然后对另一值列求和,对行进行计数,然后计算R中每个值的百分比

如何计算r中的列百分比

为 R 中的唯一列组合创建索引

sankey /冲积图,其中百分比和部分填充为R

合并R中不同列的唯一值和计算百分比

尝试按 R 中数据框中每列的组获取频率计数和百分比

在R中应用逐行转换,以使每一行的总百分比为100%

R中的累积百分比

如何根据不同列的值创建新列并计算 R 中另一个数值列的百分比值?

r-检查每一列是否为na