在R中为指定列运行COUNTIF
我需要创建一个“新”列,并在指定列(即“输出”列)上运行与COUNTIF函数等效的函数。例如,我需要计算这些列是否包含3或4 右侧有所需列的示例数据在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
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