按R中的列值分组计算总和
我有一个包含两列的数据框,一列是按R中的列值分组计算总和,r,plyr,dplyr,R,Plyr,Dplyr,我有一个包含两列的数据框,一列是Ref\u Date列,另一列是Value列。从1988年到2015年,date列每年包含12行。我需要做的是仅按年份分组并汇总值列,以便每年只能得到一行,其中包含该年12个月内每个月的所有值之和: row.names Ref_Date Value 166483 1989/01 713 166484 1989/02 771 166485 1989/03 565 166486 1989/04
Ref\u Date
列,另一列是Value
列。从1988年到2015年,date列每年包含12行。我需要做的是仅按年份分组并汇总值
列,以便每年只能得到一行,其中包含该年12个月内每个月的所有值之和:
row.names Ref_Date Value
166483 1989/01 713
166484 1989/02 771
166485 1989/03 565
166486 1989/04 1248
166487 1989/05 1380
166488 1989/06 1118
166489 1989/07 1026
166490 1989/08 995
166491 1989/09 835
166492 1989/10 939
166493 1989/11 878
166494 1989/12 1075
166495 1990/01 878
166496 1990/02 563
166497 1990/03 773
166498 1990/04 1131
166499 1990/05 1562
166500 1990/06 1747
166501 1990/07 1258
166502 1990/08 791
您可以将以下代码与dplyr一起使用:
library(dplyr)
df %>%
group_by(year = substr(Ref_Date, 1, 4)) %>% # create the groups
summarise(Value = sum(Value))
#Source: local data frame [2 x 2]
#
# year Value
#1 1989 11543
#2 1990 8703
或者与数据表类似
library(data.table)
setDT(df)[, sum(Value), by = .(year = substr(Ref_Date, 1, 4))]
# year V1
#1: 1989 11543
#2: 1990 8703
还是用R基
with(df, aggregate(Value ~ cbind(year = substr(Ref_Date, 1, 4)), FUN = sum))
# year Value
#1 1989 11543
#2 1990 8703
您可以将以下代码与dplyr一起使用:
library(dplyr)
df %>%
group_by(year = substr(Ref_Date, 1, 4)) %>% # create the groups
summarise(Value = sum(Value))
#Source: local data frame [2 x 2]
#
# year Value
#1 1989 11543
#2 1990 8703
或者与数据表类似
library(data.table)
setDT(df)[, sum(Value), by = .(year = substr(Ref_Date, 1, 4))]
# year V1
#1: 1989 11543
#2: 1990 8703
还是用R基
with(df, aggregate(Value ~ cbind(year = substr(Ref_Date, 1, 4)), FUN = sum))
# year Value
#1 1989 11543
#2 1990 8703
您可以将以下代码与dplyr一起使用:
library(dplyr)
df %>%
group_by(year = substr(Ref_Date, 1, 4)) %>% # create the groups
summarise(Value = sum(Value))
#Source: local data frame [2 x 2]
#
# year Value
#1 1989 11543
#2 1990 8703
或者与数据表类似
library(data.table)
setDT(df)[, sum(Value), by = .(year = substr(Ref_Date, 1, 4))]
# year V1
#1: 1989 11543
#2: 1990 8703
还是用R基
with(df, aggregate(Value ~ cbind(year = substr(Ref_Date, 1, 4)), FUN = sum))
# year Value
#1 1989 11543
#2 1990 8703
您可以将以下代码与dplyr一起使用:
library(dplyr)
df %>%
group_by(year = substr(Ref_Date, 1, 4)) %>% # create the groups
summarise(Value = sum(Value))
#Source: local data frame [2 x 2]
#
# year Value
#1 1989 11543
#2 1990 8703
或者与数据表类似
library(data.table)
setDT(df)[, sum(Value), by = .(year = substr(Ref_Date, 1, 4))]
# year V1
#1: 1989 11543
#2: 1990 8703
还是用R基
with(df, aggregate(Value ~ cbind(year = substr(Ref_Date, 1, 4)), FUN = sum))
# year Value
#1 1989 11543
#2 1990 8703
另一个答案可能是(使用tapply
):
years另一个答案可能是(使用tapply
):
years另一个答案可能是(使用tapply
):
years另一个答案可能是(使用tapply
):
years+1击败了我,尽管对初学者来说,将突变语句分离成它自己的逻辑可能更有帮助——即mutate(year=substr(Ref_Date,1,4))
然后是groupby(year)
你能不能再写一次这个语句,但不要使用管道?@JFBeaulieu,我相信这对你来说是一个很好的锻炼。我已经用勺子喂过你了,代码+1比我快,尽管对初学者来说,将突变语句分成它自己的逻辑可能更有帮助——即mutate(year=substr(Ref_Date,1,4))
后跟group_by(year)
你能不能再写一次这个语句,但不要使用管道?@JFBeaulieu,我相信这对你来说是一个很好的锻炼。我已经用勺子喂过你了,代码+1比我快,尽管对初学者来说,将突变语句分成它自己的逻辑可能更有帮助——即mutate(year=substr(Ref_Date,1,4))
后跟group_by(year)
你能不能再写一次这个语句,但不要使用管道?@JFBeaulieu,我相信这对你来说是一个很好的锻炼。我已经用勺子喂过你了,代码+1比我快,尽管对初学者来说,将突变语句分成它自己的逻辑可能更有帮助——即mutate(year=substr(Ref_Date,1,4))
后跟group_by(year)
你能不能再写一次这个语句,但不要使用管道?@JFBeaulieu,我相信这对你来说是一个很好的锻炼。我已经填鸭式地告诉了你为什么这会被否决?它正在被否决(虽然还没有否决,但有一种不可抗拒的冲动),因为我们希望发布一个新用户的图片,而不是一个在网站上有你经验的人。我们应该如何复制这个?通过手工书写每一个值?请遵循中的指南,可能是因为它没有证明研究工作,而且数据仅以图像形式呈现(即不可复制)。@各位,我已以纯文本形式发布了数据。很抱歉,这真的是两个问题-如何从字符串中提取年份,以及如何获得组的平均值。这两个网站上都有很多重复的内容-我认为这是下一个投票人面临的更大问题?为什么会被下一个投票?这是下一个投票(还没有下一个投票,但有一种不可抗拒的冲动),因为我们希望从一个新用户那里发布一张图片,而不是从网站上有你经验的人那里发布。我们应该如何复制这个?通过手工书写每一个值?请遵循中的指南,可能是因为它没有证明研究工作,而且数据仅以图像形式呈现(即不可复制)。@各位,我已以纯文本形式发布了数据。很抱歉,这真的是两个问题-如何从字符串中提取年份,以及如何获得组的平均值。这两个网站上都有很多重复的内容-我认为这是下一个投票人面临的更大问题?为什么会被下一个投票?这是下一个投票(还没有下一个投票,但有一种不可抗拒的冲动),因为我们希望从一个新用户那里发布一张图片,而不是从网站上有你经验的人那里发布。我们应该如何复制这个?通过手工书写每一个值?请遵循中的指南,可能是因为它没有证明研究工作,而且数据仅以图像形式呈现(即不可复制)。@各位,我已以纯文本形式发布了数据。很抱歉,这真的是两个问题-如何从字符串中提取年份,以及如何获得组的平均值。这两个网站上都有很多重复的内容-我认为这是下一个投票人面临的更大问题?为什么会被下一个投票?这是下一个投票(还没有下一个投票,但有一种不可抗拒的冲动),因为我们希望从一个新用户那里发布一张图片,而不是从网站上有你经验的人那里发布。我们应该如何复制这个?通过手工书写每一个值?请遵循中的指南,可能是因为它没有证明研究工作,而且数据仅以图像形式呈现(即不可复制)。@各位,我已以纯文本形式发布了数据。很抱歉,这真的是两个问题-如何从字符串中提取年份,以及如何获得组的平均值。这两个网站上都有很多重复的内容——我认为这是下层选民面临的更大问题?这对我很有用。。。只需要将第二行改为:sums哦,我很高兴它这么做了,我不知道你把值存储为字符串。但我想最终还是可以的。这基本上是@docendos解决方案。应该是一个普通人