我希望函数'count'通过'operator' = 1(<),=2(=),= 3(>)计算'data'中满足'critvalue'的条目数。
count = function(data,critvalue,operator=2) {
if (operator == 1){
sum(data < critvalue)}
if (operator == 2){
sum(data == critvalue)}
if (operator == 3){
sum(data > critvalue)}}
它适用于值向量:
count(rep(6,10),critvalue=5,operator=1)
当我将此函数应用于矩阵以按行计数时,它不起作用:
m = rbind(1:10,1:10,1:10)
apply(m, 1, count, critvalue = 6)
但是,当我将函数“count”定义为不采用运算符参数时,它会以某种方式起作用
count = function(data,critvalue,operator=2) {
sum(data == critvalue)}
apply(m, 1, count, critvalue = 6)
任何帮助弄清楚为什么这在 apply 函数中不起作用将不胜感激。
另外,我肯定会对已经算得上这样的基本函数感兴趣。我试过'sum',但不知道如何在应用中使用它。
sum(m == 6) #works
apply(m,1,sum, #no idea how set the criteria for being equal to 6