R 将列汇总为数据框中的新列
我有一个数据帧df_工作文件:R 将列汇总为数据框中的新列,r,dataframe,R,Dataframe,我有一个数据帧df_工作文件: group | value a | 1 a | 3 b | 2 b | 2 我想添加两个新列-一个用于最小值,另一个用于最大值 group | value | max | min a | 1 | 3 | 1 a | 3 | 3 | 1 b | 2 | 2 | 2 b | 2 | 2 | 2 现在,我循环遍历
group | value
a | 1
a | 3
b | 2
b | 2
我想添加两个新列-一个用于最小值,另一个用于最大值
group | value | max | min
a | 1 | 3 | 1
a | 3 | 3 | 1
b | 2 | 2 | 2
b | 2 | 2 | 2
现在,我循环遍历每一行并获取组的数据子集的最小/最大值,但对于大型数据集来说,这真的很慢。执行此操作的有效方法是什么?使用
dplyr
软件包,您可以执行以下操作:
df_workingFile %>%
group_by(group) %>%
mutate(max = max(value), min = min(value)) %>% ungroup()
# A tibble: 4 x 4
group value min max
<chr> <dbl> <dbl> <dbl>
1 a 1 1 3
2 a 3 1 3
3 b 2 2 2
4 b 2 2 2
df\u工作文件%>%
分组依据(分组)%>%
变异(最大值=最大值,最小值=最小值))%>%ungroup()
#一个tibble:4x4
组值最小值最大值
1 a 11 3
2 a 3 1 3
3 b 2 2
4 b 2 2
使用dplyr
软件包,您可以执行以下操作:
df_workingFile %>%
group_by(group) %>%
mutate(max = max(value), min = min(value)) %>% ungroup()
# A tibble: 4 x 4
group value min max
<chr> <dbl> <dbl> <dbl>
1 a 1 1 3
2 a 3 1 3
3 b 2 2 2
4 b 2 2 2
df\u工作文件%>%
分组依据(分组)%>%
变异(最大值=最大值,最小值=最小值))%>%ungroup()
#一个tibble:4x4
组值最小值最大值
1 a 11 3
2 a 3 1 3
3 b 2 2
4 b 2 2
df$max=ave(df$value,df$group,FUN=max);df$min=ave(df$value,df$group,FUN=min)
@Henrik我认为你在结束问题时有点苛刻,因为这是重复的。不一定是这一个,但我今天跑到另外两个帖子,你把它们标记为重复的,我不太确定它们是那些线程的重复。你当然是金獾;)@谢谢你的反馈!如果您愿意,请随时联系。(我刚刚检查了我重复提问的十个最新问题——到目前为止,没有对它们进行重新投票,这可能表明很多同行同意我关闭的选择,以及我对重复目标的选择)。@Henrik别误会我的意思。我不是说他们错了,而是说他们很严厉。不管怎么说,你知道重新提出问题的机会很低,而且当他们被欺骗时,机会就更低了。总之,这是我的观点,它可能是对的,也可能是错的。df$max=ave(df$value,df$group,FUN=max);df$min=ave(df$value,df$group,FUN=min)
@Henrik我认为你在结束问题时有点苛刻,因为这是重复的。不一定是这一个,但我今天跑到另外两个帖子,你把它们标记为重复的,我不太确定它们是那些线程的重复。你当然是金獾;)@谢谢你的反馈!如果您愿意,请随时联系。(我刚刚检查了我重复提问的十个最新问题——到目前为止,没有对它们进行重新投票,这可能表明很多同行同意我关闭的选择,以及我对重复目标的选择)。@Henrik别误会我的意思。我不是说他们错了,而是说他们很严厉。不管怎么说,你知道重新提出问题的机会很低,而且当他们被欺骗时,机会就更低了。总之,这是我的观点,它可以是对的,也可以是错的。