r - 基于 R 中另一列的值进行计数

标签 r

我正在尝试在我的数据框中创建一个新列(称为 Error_1_Count),该列计算“错误类型 1”出现在名为“错误”的列中针对“名称”的每个不同值的次数。下面是我想要的结果数据框的示例。

我曾尝试根据错误创建一个带有赋值的循环(见下文),但是,我的输出中的计数不正确(仅导致 0 和 1)。

请让我知道如何改进我的代码并确保仅针对“名称”的新值重置计数。谢谢!

Goal Result in Table


Name       Error         Error_1_Count
A       Error Type 1          1
A       Error Type 4          1
A       Error Type 1          2
B       Error Type 2          0
A       Error Type 1          3
C       Error Type 3          0
D       Error Type 1          1


names <- unique(data.df$name)
count <- 0

for (i in names) {

  data.df[data.df$name == i, data.df$error_1_count <- ifelse(data.df$error == 'Error Type 1', count + 1, count)]

}


#View(data.df)
#print(unique(data.df$error_1_count))


最佳答案

您可以使用 avecumsum .

x$Error_1_Count <- ave(x$Error == "Error Type 1", x$Name, FUN=cumsum)
x
#  Name        Error Error_1_Count
#1    A Error Type 1             1
#2    A Error Type 4             1
#3    A Error Type 1             2
#4    B Error Type 2             0
#5    A Error Type 1             3
#6    C Error Type 3             0
#7    D Error Type 1             1

数据:
x <- structure(list(Name = structure(c(1L, 1L, 1L, 2L, 1L, 3L, 4L), .Label = c("A", 
"B", "C", "D"), class = "factor"), Error = structure(c(1L, 4L, 
1L, 2L, 1L, 3L, 1L), .Label = c("Error Type 1", "Error Type 2", 
"Error Type 3", "Error Type 4"), class = "factor")), row.names = c(NA, 
-7L), class = "data.frame")

关于r - 基于 R 中另一列的值进行计数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59179363/

相关文章:

regex - 替换两个特殊字符之间的文本

r - 计算 R 中的加权多边形质心

r - 如何在 R 中同时 grep 两个术语

r - 在 R 中计算购买旅程长度

r - geom_boxplot() : forcing an empty level to appear

regex - 如何在 R 中的字符串中搜索美元符号?

多列滚动回归

xml - 使用 R 抓取包含多个页面的 HTML 表格

r - 数据表分配不起作用

r - 如何在双y轴ggplot上显示图例