爲了將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'也有'吶.rm'參數'sum(cleared_us,na.rm = TRUE)'此外,你可以使用'colMeans(numeric_clean_usnews,na.rm = TRUE)' – akrun
完美,這可以工作,但我認爲它可能會佔總數元素的數量並不排除NA 。我試了na.rm的長度,它不使用它。另外我希望我可以使用colMeans,但它要求我們製作我們自己的 –
我沒有注意到這個長度。你可以使用'sum(!is.na(cleaned_us))' – akrun