首页 > 解决方案 > 我想在 R 中按天获得可靠性值!= 1

问题描述

我想知道我的数据框中有多少值与 1 不同。

我的输入是这样的:

simulation, day, reliability
1, 1, 0.999
1, 2, 0.999
1, 3, 0.999
2, 1, 1
2, 2, 0.999
2, 3, 1
3, 1, 0.98
3, 2, 0.98
3, 3, 1

输出应该是这样的:

day, counter
1, 2
2, 3 
3, 1

提前谢谢了!

标签: rggplot2tidyverse

解决方案


您可以取逻辑值的总和来计算每天有多少个不同于 1。

在基础 R 中:

aggregate(reliability~day, df, function(x) sum(x != 1))

dplyr

library(dplyr)
df %>%group_by(day) %>% summarise(counter = sum(reliability != 1))

和数据表:

library(data.table)
setDT(df)[, .(counter = sum(reliability != 1)), day]

推荐阅读