r - 给定另一列的值,如何计算一列中某物的实例?
问题描述
我基本上有一个这样的数据框:
Name Value
a TRUE
a TRUE
b FALSE
a FALSE
c TRUE
但更长的时间,我想获得 a、b 和 c 出现的次数。我还想获得 TRUE 出现在 a、b 和 c 上的时间量。
所以基本上,我想要:
Name Count TRUEs
a 3 2
b 1 0
c 1 1
我该怎么做?
解决方案
使用基础 R 替代by
do.call(rbind, by(df, df$Name, FUN = function(x)
c(Count = length(x$Value), TRUEs = sum(x$Value == TRUE))))
# Count TRUEs
#a 3 2
#b 1 0
#c 1 1
或使用tapply
do.call(rbind, with(df, tapply(Value, Name, FUN = function(x)
c(Count = length(x), TRUEs = sum(x == TRUE)))))
推荐阅读
- c# - 如何在 WPF C# 中的 ItemsControl 中获取项目值?
- javascript - 为 Flutter Web 应用添加 id 或 name 属性或其他标识方式?
- html - Bootstrap 使列的高度相同 - 在文本行上对齐
- pyspark - pyspark 爆炸字典列表并根据字典键对它们进行分组
- extjs - 在 extjs 4.2.1 中禁用整个列
- javascript - 如何使用 NodeJS 从 MongoDb 获取 JSONObject 形式的结果
- python - 删除文件夹和所有子文件夹中python中的文件类型
- elasticsearch - ElasticSearch 索引,它们是如何工作的以及它们是什么?
- apache-flink - flink 集群重启时自动恢复作业
- javascript - 引导框警报未在 $.post(url, data).done() 代码中弹出