r - 在大型数据框中按行计算字符串的出现次数

标签 r count summarize rowsum

我正在尝试在大型数据框中按行计算二进制字符结果:

V1      V2      V3      V4      V5  
Loss    Loss    Loss    Loss    Loss
Loss    Loss    Win     Win     Loss
Loss    Loss    Loss    Loss    Loss

我需要知道的是按行赢和输的频率。这只是一个简短的例子(大型模拟输出的片段),但对于第 1 行,在五个模拟中,我有五个损失,第二行三个损失和两个胜利,等等。

我希望生成一个单独的表格,按行显示赢/输的频率,或者,如果这不起作用,则添加两个新列:一个提供每行“赢”和“输”的数量。

每一行都是一个不同的案例,每一列都是那个案例的复制品。这显示为具有两个级别“损失”“赢”的因子数据框。

最佳答案

这是一个快速矢量化解决方案(假设您的数据集名为 df )

Loss <- rowSums(df == "Loss") # Count the "Loss" per row
cbind(Loss, Wins = ncol(df) - Loss) # Subscribe these from the columns numbers and combine
#      Loss Wins
# [1,]    5    0
# [2,]    3    2
# [3,]    5    0

关于r - 在大型数据框中按行计算字符串的出现次数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27850054/

相关文章:

r - 无法从维基百科中抓取表格

r - 从 R 中的逆 Gamma 分布采样

sql - 获取 postgres 的计数总和

Javascript - 将字符串转换为关联数组并按值汇总

csv - Unix,对 file.csv 中的行进行分组并计算列的总和值

r - 导入文本文件时跳过空文件

r - 在mutate中使用replace_na和cross

sql选择5个最高值

mysql - 如何使用 MySQL 通过 LEFT JOIN 进行计数?

SVN 差异 - 选项 ' --summarize '