我有一个包含许多列(〜50)的data.frame。其中一些是字符,一些是数字,其中 3 个用于分组。
我需要:
- 从数字列中删除 NA
- 计算每个数字列的平均值
- 提取字符列的第一个元素
假设,我们正在使用修改后的虹膜数据,如下所示:
data(iris)
iris$year <- rep(c(2000,3000),each=25) ## for grouping
iris$color <- rep(c("red","green","blue"),each=50) ## character column
iris[1,] <- NA ## introducing NAs
我总共有大约 50 列,数字和字符混合在一起。我一直在尝试类似的东西:
giris <- group_by(iris, Species, year)
cls <- unlist(sapply(giris, class)) ## find out classes
action <- ifelse(cls == "numeric", "mean", "first")
action <- paste(action)
summarise_each(giris, action)
我得到的是组中所有列的含义,然后是相应组中具有第一个值的列。而且 NA 没有得到处理……这不是我所寻求的……
帮助任何人?