gpt4 book ai didi

r - 如何在一个列中按几列对一个因子的出现次数进行计数?

转载 作者:行者123 更新时间:2023-12-04 13:19:59 24 4
gpt4 key购买 nike

我有一个看似简单的问题,但我无法弄清楚如何获得我想要的东西。

我的数据如下所示:

      Job     C/C++     Java     Python
Student FALSE TRUE FALSE
Developer TRUE TRUE TRUE
Developer TRUE TRUE FALSE
Sysadmin TRUE FALSE FALSE
Student FALSE TRUE TRUE

我想按“工作”列进行分组,并计算每列中 TRUE的数量。我想要的输出看起来像这样:
      Job     C/C++     Java     Python
Student 0 2 1
Developer 2 2 1
Sysadmin 1 0 0

任何帮助将不胜感激。

最佳答案

替代的plyrdata.table解决方案:

data.table:

require(data.table)
tmp.dt <- data.table(temp, key="Job")
tmp.dt[, lapply(.SD, sum), by=Job]

# Job C.C.. Java Python
# 1: Developer 2 2 1
# 2: Student 0 2 1
# 3: Sysadmin 1 0 0

plyr:
require(plyr)
ddply(temp, .(Job), function(x) colSums(x[-1]))

# Job C.C.. Java Python
# 1 Developer 2 2 1
# 2 Student 0 2 1
# 3 Sysadmin 1 0 0

编辑:如果您不是TRUE/FALSE,而是要计算 Newbie的数量,则:

与data.table:
require(data.table)
tmp.dt <- data.table(temp, key="Job")
tmp.dt[, lapply(.SD, function(x) sum(x == "Newbie")), by=Job]

与plyr:
require(plyr)
ddply(temp, .(Job), function(x) colSums(x[-1] == "Newbie"))

关于r - 如何在一个列中按几列对一个因子的出现次数进行计数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15280362/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com