在 dplyr 中使用跨函数
Using across function in dplyr
我有一个包含缺失值的数据框。
# Create dataframe
df <- data.frame(Athlete = c(c(replicate(200,"Ali"), c(replicate(200,"Tyson")))),
Score = replicate(400, sample(c(1:20, NA), 1, rep = TRUE)))
我的函数对因子进行分组,然后对不包含 NA 值的行进行计数。
library(dplyr)
Result <- df %>%
dplyr::group_by(Athlete, .drop = TRUE) %>%
dplyr::summarise_each(list(~sum(!is.na(.))))
我得到了想要的结果。但是有一个警告信息。
`summarise_each_()` is deprecated as of dplyr 0.7.0.
Please use `across()` instead.
我正在尝试更新代码库以停止警告消息。
注意:警告消息还说;
This warning is displayed once every 8 hours.
Call `lifecycle::last_warnings()` to see where this warning was generated.
因此,如果警告消息不存在,请重新启动 Rstudio 并重新运行脚本以生成警告消息。
summarise_each
已替换为 summarise_at
/summarise_all
,现在在 dplyr 1.0.0
.
中已替换为 across
library(dplyr)
df %>%
group_by(Athlete) %>%
summarise(across(everything(), ~sum(!is.na(.))))
# Athlete Score
# <chr> <int>
#1 Ali 189
#2 Tyson 195
尽管如此,如果您只有一列要如图所示进行汇总,您可以直接这样做:
df %>%
group_by(Athlete, .drop = TRUE) %>%
summarise(Score = sum(!is.na(Score)))
我有一个包含缺失值的数据框。
# Create dataframe
df <- data.frame(Athlete = c(c(replicate(200,"Ali"), c(replicate(200,"Tyson")))),
Score = replicate(400, sample(c(1:20, NA), 1, rep = TRUE)))
我的函数对因子进行分组,然后对不包含 NA 值的行进行计数。
library(dplyr)
Result <- df %>%
dplyr::group_by(Athlete, .drop = TRUE) %>%
dplyr::summarise_each(list(~sum(!is.na(.))))
我得到了想要的结果。但是有一个警告信息。
`summarise_each_()` is deprecated as of dplyr 0.7.0.
Please use `across()` instead.
我正在尝试更新代码库以停止警告消息。
注意:警告消息还说;
This warning is displayed once every 8 hours.
Call `lifecycle::last_warnings()` to see where this warning was generated.
因此,如果警告消息不存在,请重新启动 Rstudio 并重新运行脚本以生成警告消息。
summarise_each
已替换为 summarise_at
/summarise_all
,现在在 dplyr 1.0.0
.
across
library(dplyr)
df %>%
group_by(Athlete) %>%
summarise(across(everything(), ~sum(!is.na(.))))
# Athlete Score
# <chr> <int>
#1 Ali 189
#2 Tyson 195
尽管如此,如果您只有一列要如图所示进行汇总,您可以直接这样做:
df %>%
group_by(Athlete, .drop = TRUE) %>%
summarise(Score = sum(!is.na(Score)))