我希望函數'count'來計算符合'critvalue''操作符'= 1(<),= 2(=)的'data'中的條目數, = 3(>)。使用多個可選參數應用函數時遇到問題
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)
任何幫助弄清楚爲什麼這不適用於應用函數將不勝感激。
此外,我一定會對已經算過的基本函數感興趣。我嘗試了'總和',但不知道如何在應用中使用它。
sum(m == 6) #works
apply(m,1,sum, #no idea how set the criteria for being equal to 6
你的第一個問題是'm'不是矩陣。閱讀「?矩陣」和「?c」。 – Roland
哎呀,是的,我注意到了,並打算將它改爲rbind ...只是編輯帖子,以體現這一點,謝謝 – jhjudd