我想把data
分组为group1
或group1
和group2
,条件是by_group
bool。
grouped_DF <- function(data, by_group = TRUE, group1='year',group2='country') {
data <- data %>%
group_by(
if (by_group) c(group1, group2) else group1
) %>%
mutate(...)
ungroup()
return(data)
}
但是,我不能设法找到一个解决办法。
我得到了第一个与大小不一致相关的错误:if (by_group) c(group1, group2) else
组1 must be size 1115451 or 1, not 1115452.
。
如果我将by_group
设置为,则会得到:Caused by error in pick():! Selections can't have missing values.
如果没有条件,如果我简单地用group1
分组,函数就可以按预期工作。
有什么建议吗?谢谢
数据示例。
data(mtcars)
grouped_DF <- function(data, by_group = TRUE, group1='carb',group2='gear') {
data <- data %>%
group_by(
if (by_group) c(group1, group2) else group1
) %>%
summarise(
disp = mean(disp),
hp = mean(hp)
)
ungroup()
return(data)
}
mtcars_grouped=grouped_DF(mtcars,by=TRUE)
1条答案
按热度按时间70gysomp1#
您可以尝试在
group_by
中使用pick