定義した関数にna.rm
パラメータを渡すには、関数のパラメータにする必要があります。 sum()
関数のパラメータはna.rm
ですが、length()
はありません。だから、あなたが作成しようとしている関数を記述するために、あなたが言うことができる:
# include `na.rm` as a param of the argument
mymean <- function(cleaned_us, na.rm){
# pass it to `sum()`
column_total = sum(cleaned_us, na.rm=na.rm)
# if `na.rm` is set to `TRUE`, then don't count `NA`s
if (na.rm==TRUE){
column_length = length(cleaned_us[!is.na(cleaned_us)])
# but if it's `FALSE`, just use the full length
} else {
column_length = length(cleaned_us)
}
return (column_total/column_length)
}
次に、あなたの呼び出しが動作するはずです:
Average_2 <- apply(numeric_clean_usnews, 2, mymean, na.rm=TRUE)
'sum'も' NAを持っていますあなたは 'colMeans(numeric_clean_usnews、na.rm = TRUE)'を使用することができます。 – akrun
完璧です、それは動作しますが、私はそれが合計の長さを取っているかもしれないと思います要素の量はNAを排除しない。私は長さのためにna.rmを試しました。それはそれを使用しません。また、私はcolMeansを使用することができますが、それは私たち自身を作るようにお願いします –
私は長さに気付かなかった。 'sum(!is.na(cleaned_us)) 'を使うことができます。 – akrun