在R中为指定列运行COUNTIF

在R中为指定列运行COUNTIF,r,countif,R,Countif,我需要创建一个“新”列,并在指定列(即“输出”列)上运行与COUNTIF函数等效的函数。例如,我需要计算这些列是否包含3或4 右侧有所需列的示例数据 x Output.1 Output.2 Output.3 Output.4 Output.5 y new 1 3 3 NA NA NA 2 2 1 4 4 3 3 NA 2 4

我需要创建一个“新”列,并在指定列(即“输出”列)上运行与COUNTIF函数等效的函数。例如,我需要计算这些列是否包含3或4

右侧有所需列的示例数据

x  Output.1  Output.2  Output.3  Output.4  Output.5  y  new
1  3         3         NA        NA        NA        2  2
1  4         4         3         3         NA        2  4
1  3         3         3         3         3         2  5
1  2         2         4         4         4         2  3
我尝试过使用行和(经过一点搜索)例如:

df$new <- rowSums(df[c('Output.1', 'Output.2', 'Output.3', 'Output.4', 'Output.5')] == 3)
尽管后者对值求和,但我需要一个实例计数,并且我不知道如何在其中gt==3的条件


提前感谢

您可以为此使用
应用

df$new <- apply(df[, grep("Output.", names(df))], MARGIN = 1, 
                function(x) sum(x %in% c(3, 4), na.rm = T))

df 
#   x Output.1 Output.2 Output.3 Output.4 Output.5 y new
# 1 1        3        3       NA       NA       NA 2   2
# 2 1        4        4        3        3       NA 2   4
# 3 1        3        3        3        3        3 2   5
# 4 1        2        2        4        4        4 2   3

df$new Thank kath-这与该数据帧完美配合-当我在具有更多列的更大数据帧上使用它时,我会收到此错误-应用中的错误(Activity_final[,grep(“Output.”,names(Activity_final)),:dim(X)必须有正长度uuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuu
到要使用的列。它返回
3 4 5 6 7 8 9 10 11
,因此不为空。在这种情况下,列在任何情况下都将始终是
“Output”
列。
df$new <- apply(df[, grep("Output.", names(df))], MARGIN = 1, 
                function(x) sum(x %in% c(3, 4), na.rm = T))

df 
#   x Output.1 Output.2 Output.3 Output.4 Output.5 y new
# 1 1        3        3       NA       NA       NA 2   2
# 2 1        4        4        3        3       NA 2   4
# 3 1        3        3        3        3        3 2   5
# 4 1        2        2        4        4        4 2   3