如何对不同的列进行分组并根据一列找到百分比?

索海尔

我想组的以下数据表通过var1var2,然后找到在百分比var2

data <- as.data.table(list(var1 = c("x1","x1","x2","x1","x2"), 
                           var2 = c("y1","y1","y1","y2","y2"))) 

data[, .(count = .N), by=.(var1, var2)]

#    var1 var2 count
#1:   x1   y1     2
#2:   x2   y1     1
#3:   x1   y2     1
#4:   x2   y2     1

这是我感兴趣的结果:

#    var1 var2 count  ratio in var2
#1:   x1   y1     2         0.66
#2:   x2   y1     1         0.33
#3:   x1   y2     1         0.5
#4:   x2   y2     1         0.5

如何更改代码以实现这一目标?

贾普

这应该给您您想要的:

data <- data[, .N, by = .(var1, var2)][, ratio:=N/sum(N), by = var2]

结果是:

> data
   var1 var2 N     ratio
1:   x1   y1 2 0.6666667
2:   x2   y1 1 0.3333333
3:   x1   y2 1 0.5000000
4:   x2   y2 1 0.5000000

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

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

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

如何在分组数据框中创建一列百分比?

如何计算每一列的百分比?

Python按一列分组并计算另一列的百分比

如何返回2列之间的百分比,该百分比由SQL中的另一列分组?

熊猫分组-基于另一列的值占分组总数的百分比

按两列分组并聚合为其中一列的百分比

计算按另一列分组的多对列之间的变化百分比

Pandas - 根据第一列值按百分比转换列

根据多列,计算频率和百分比进行分组

如何使用不同标准计算来自同一列的不同值的百分比

分组后获得每一列的百分比

获取基于另一列但类别不同的列的百分比

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

如何使用大熊猫中的groupby根据另一列中的条件计算百分比总数

根据每个唯一列值计算百分比

根据另一列计算 groupby 中的百分比

一列总和 SQL 百分比

SQL中同一列的百分比

Pandas:每一列的nan的百分比

一列以上的groupby的熊猫百分比

SQL 查找一列总数的百分比

POSTGRES 9.6:如何在单个查询中按表的每一列的百分比进行分解?

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

根据分子中是否包含值以及分母中是否包含唯一列值,按百分比计算分组

如何定位一列并将其转换为百分比

熊猫:如何计算一列相对于另一列的百分比?

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

根据另一列值计算数据框列中某个值出现的百分比

从一列到下一列的百分比变化