【问题标题】:How I can merge two different data sets? [duplicate]如何合并两个不同的数据集? [复制]
【发布时间】:2015-06-25 19:04:32
【问题描述】:

我有两个数据集如下 df1:

ID   name 
1   
1   
2   
2   
3   
3   
3   

df2:

ID   var1 name 
1     54   aaa
1     12   aaa
2     55   bbb
2     87   bbb
3     1    ccc
3     2    ccc
3     12   ccc
3     14   ccc   
3     16   ccc   
...

我想使用 df2 填充 df1 数据中的 nave 变量。 我该怎么做?

【问题讨论】:

标签: r dataset


【解决方案1】:

以下是快速试用。

df1 <- data.frame(ID = c(1,2,3))
df2 <- data.frame(ID = c(1,2,2), name=c('aaa','bbb','bbb'))
# get unique ID and name pairs
df2 <- unique(df2)

# merge that keep all x rows (or left outer join by df1)
merge(df1, df2, by="ID", all=TRUE)
  ID name
1  1  aaa
2  2  bbb
3  3 <NA>

## Update
df1 <- data.frame(ID = c(1,1,2,2,3,3,3))

names <- data.frame(ID = c(1,2,3), names=c('aaa','bbb','ccc'))
df2 <- merge(data.frame(ID = c(1,1,2,2,3,3,3,3)), names, by="ID") 
df2 <- unique(df2)

merge(df1, df2, by="ID", all.x = TRUE)

【讨论】:

  • 其实我试过了,但是不能正常工作,所以我问了。
  • 我不知道为什么df1的行数变大了。
  • 你能试试 merge(df1, df2, by="ID", all.x = TRUE) 吗?以上将是交叉连接,而这个应该是保留所有 df1 记录的左连接。很抱歉给您带来不便。
  • 是的,我做到了。我不知道为什么 df1 的行数变大了。
  • 如果有“ID”只存在 df2 数据,我想只使用普遍存在的“ID”来合并数据集?
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2018-08-21
  • 2014-08-13
  • 2014-02-06
  • 2021-11-19
  • 1970-01-01
  • 1970-01-01
  • 2020-03-17
相关资源
最近更新 更多