我想改变数据帧两次,按两组相互交叉的列进行分组。即:
group_by
有更快/更优雅的方式吗?我希望能够做到这样的事情:
url = r"C:\Users\Sony\Desktop\b.html"
page = open(url)
或者在应用第一个k="C:\Users\Sony\Desktop\b.html"
url = r k
page = open(url)
时保存变量,然后再使用两次。
答案 0 :(得分:10)
我们在第二个add=TRUE
中使用group_by
将3个变量分组,在OP的示例中添加c
-
df %>%
group_by(a, b) %>%
mutate(x = sum(d)) %>%
group_by(c, add=TRUE) %>%
mutate(y = sum(e))
根据?group_by
默认情况下,当add = FALSE时,group_by将覆盖现有组。 要改为添加到现有组,请使用add = TRUE
这可以在一次group_by
调用中完成,但仅适用于非dplyrish函数:
df %>%
group_by(a, b) %>%
mutate(x = sum(d), y = ave(e, c, sum))