抱歉,想不出更好的方式来表达这个问题。
基本上,我将如何合并类似于以下数据帧的内容
2014:
Team Goals.Scored Goals.Conceded
MUFC 2 4
MCFC 3 0
LFC 1 6
2015:
Team Goals.Scored Goals.Conceded
MUFC 4 3
MCFC 3 2
AVFC 1 5
这样的东西会自动添加匹配团队的值
总体
Team Goals.Scored Goals.Conceded
MUFC 6 7
MCFC 6 2
LFC 1 6
AVFC 1 5
我最初使用的是一个简单的命令
new.df = 2014$Goals.Scored + 2015$Goals.Scored
但我认为只有两个数据框中的团队处于相同的顺序,并且多年来他们是同一个团队时才有效?想到做一个for循环但到目前为止都没有成功。
感谢任何帮助,谢谢。
答案 0 :(得分:4)
如果两个数据集是' df1',' df2',我们将其放在list
中,与来自rbindlist
的{{1}}绑定},按'团队'分组,我们得到Data.table的子集data.table
(sum
)
.SD
或者使用library(data.table)
rbindlist(list(df1, df2))[,lapply(.SD, sum) ,Team]
# Team Goals.Scored Goals.Conceded
#1: MUFC 6 7
#2: MCFC 6 2
#3: LFC 1 6
#4: AVFC 1 5
,我们对数据集(dplyr
)进行搜索,按照' Team'进行分组,并使用{{1}获取列的bind_rows
}。
sum
或者来自summarise_each
的更紧凑的代码library(dplyr)
bind_rows(df1, df2) %>%
group_by(Team) %>%
summarise_each(funs(sum))
(与上面针对大数据集描述的其他方法相比会更慢)。我们可以使用公式aggregate
建议base R
.
上的所有其他变量。
lhs
它可以写成~