繁体   English   中英

如何将函数应用于所有数据框变量?

[英]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_eachdplyr包:

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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM