[英]how can I apply a function to all dataframe variables?
我想要一个带有90个变量的数据框,并且超过一百万个观察值。 我想计算每个变量上NA行的百分比。 我有以下代码:sum(is.na(dataframe $ variable)/ nrow(dataframe)* 100)我的问题是,如何才能将此函数应用于所有90个变量,而不必在代码中键入所有变量名?
将lapply()
与您的方法一起使用:
lapply(df, function(x) sum(is.na(x))/nrow(df)*100)
如果你想返回一个data.frame
而不是一个列表(通过lapply()
或载体(通过sapply()
可以使用summarise_each
从dplyr
包:
library(dplyr)
df %>%
summarise_each(funs(sum(is.na(.)) / length(.)))
或者,更简洁地说:
df %>% summarise_each(funs(mean(is.na(.))))
df <- data.frame(
x = 1:10,
y = 1:10,
z = 1:10
)
df$x[c(2, 5, 7)] <- NA
df$y[c(4, 5)] <- NA
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.