如何为列表中的每个数据框添加百分比列?
解决方案
你可以用lapply遍历列表l2中的每个数据框,基于Freq列计算百分比并添加为新列:
带小数保留的版本(推荐)
# 给每个数据框添加百分比列,保留两位小数 l2_with_pct <- lapply(l2, function(df) { df$Percentage <- round((df$Freq / sum(df$Freq)) * 100, 2) df })
不保留小数的版本
l2_with_pct <- lapply(l2, function(df) { df$Percentage <- (df$Freq / sum(df$Freq)) * 100 df })
效果验证(以你的示例数据为例)
运行代码后,l2_with_pct中的每个数据框会新增Percentage列:
- 对应变量
x的数据框:x Freq Percentage 1 0 3 42.86 2 1 4 57.14 - 对应变量
y的数据框:y Freq Percentage 1 2 5 71.43 2 3 2 28.57
这种方法可以自动处理列表中的所有数据框,哪怕你有900个变量也能适用。
内容的提问来源于stack exchange,提问作者An116
相关产品推荐
相关产品推荐

