如何在R中合并和添加列?

时间:2014-08-20 17:15:56

标签: r

我有两个数据帧。

Seasons Frequency
DJF 1
JJA 10
MAM 20
SON 30

Seasons Frequency
DJF 1
JJA 10
MAM 20
SON 30

如何合并这两个dfs,同时添加频率值?

预期输出:

Seasons Frequency
DJF 2
JJA 20
MAM 40
SON 60

3 个答案:

答案 0 :(得分:1)

使用包plyr

require(plyr)
ddply(rbind(df1, df2), 
  .(Seasons), 
  summarize,
  Frequency=sum(Frequency))

答案 1 :(得分:0)

由于2个数据帧具有相同的结构,因此基数R的单行代码也将执行:

> df3 = data.frame(Seasons = df1$Seasons, Frequency = df1$Frequency+df2$Frequency)
> df3
  Seasons Frequency
1     DJF         2
2     JJA        20
3     MAM        40
4     SON        60

答案 2 :(得分:0)

如果它们按顺序排列,没有丢失的标签,您只需添加第二列即可。

df1$Frequency <- df1$Frequency + df2$Frequency)

如果没有,您可以合并Seasons值,然后将两者合并在一起并删除无关列。

final.df <- merge(df1, df2, by='Seasons')
final.df$Frequency <- final.df$Frequency.x + final.df$Frequency.y
final.df$Frequency.x <- NULL
final.df$Frequency.y <- NULL