为什么 dplyr 中的独立 group_by 似乎没有任何作用?
Why doesn't a standalone group_by in dplyr appear to do anything?
我有一个 df
如下所示;
set.seed(1)
No <- rep(seq(0,95,1),times=21)
AC <- rep(rep(c(78,110),each=1),times=length(No)/2)
AR <- rep(rep(c(256,320,384),each=2),times=length(No)/6)
AM <- rep(1,times=length(No))
DQ <- rep(rep(seq(0,15,1),each=6),times=3)
V <- rep(seq(100,2100,100),each=96)
R <- sort(replicate(3, sample(5000:6000,96)))
df <- data.frame (No,AC,AR,AM,DQ,V,R)
head df
No AC AR AM DQ V R
1 0 78 256 1 0 100 5012
2 1 110 256 1 0 100 5013
3 2 78 320 1 0 100 5022
4 3 110 320 1 0 100 5025
5 4 78 384 1 0 100 5034
6 5 110 384 1 0 100 5043
library(dplyr)
df %>% group_by(AR,AC,No)
当我尝试 group_by
names(df)
中的任何一个时,没有任何变化,我得到与 df
相同的格式输出。有解决这个问题的想法吗?
dplyr
正在按预期工作。 group_by
命令本身除了分组数据框外不输出任何内容:
str(df)
'data.frame': 2016 obs. of 7 variables:...
df1 <- df %>% group_by(AR,AC,No)
str(df1)
Classes ‘grouped_df’, ‘tbl_df’, ‘tbl’ and 'data.frame': 2016 obs. of 7 variables:....
如果你想要汇总统计(每组一个输出行),你可以尝试函数 summarise:
df2 <- df %>% group_by(AR,AC,No) %>%
summarise(mean = mean(R), number = n())
或者您可以尝试改变(每一行的新列),例如在每组中排名:
df3 <- df %>% group_by(AR,AC,No) %>%
arrange(R) %>%
mutate(rank = row_number())
我有一个 df
如下所示;
set.seed(1)
No <- rep(seq(0,95,1),times=21)
AC <- rep(rep(c(78,110),each=1),times=length(No)/2)
AR <- rep(rep(c(256,320,384),each=2),times=length(No)/6)
AM <- rep(1,times=length(No))
DQ <- rep(rep(seq(0,15,1),each=6),times=3)
V <- rep(seq(100,2100,100),each=96)
R <- sort(replicate(3, sample(5000:6000,96)))
df <- data.frame (No,AC,AR,AM,DQ,V,R)
head df
No AC AR AM DQ V R
1 0 78 256 1 0 100 5012
2 1 110 256 1 0 100 5013
3 2 78 320 1 0 100 5022
4 3 110 320 1 0 100 5025
5 4 78 384 1 0 100 5034
6 5 110 384 1 0 100 5043
library(dplyr)
df %>% group_by(AR,AC,No)
当我尝试 group_by
names(df)
中的任何一个时,没有任何变化,我得到与 df
相同的格式输出。有解决这个问题的想法吗?
dplyr
正在按预期工作。 group_by
命令本身除了分组数据框外不输出任何内容:
str(df)
'data.frame': 2016 obs. of 7 variables:...
df1 <- df %>% group_by(AR,AC,No)
str(df1)
Classes ‘grouped_df’, ‘tbl_df’, ‘tbl’ and 'data.frame': 2016 obs. of 7 variables:....
如果你想要汇总统计(每组一个输出行),你可以尝试函数 summarise:
df2 <- df %>% group_by(AR,AC,No) %>%
summarise(mean = mean(R), number = n())
或者您可以尝试改变(每一行的新列),例如在每组中排名:
df3 <- df %>% group_by(AR,AC,No) %>%
arrange(R) %>%
mutate(rank = row_number())