【发布时间】:2018-12-07 20:49:54
【问题描述】:
我有一个 dataframe1 的列包含名字,另一个 dataframe2 包含名字和相应的性别。
现在我想将dataframe2 的性别列添加到dataframe1 中,但它似乎不适用于以下行:
df2new <- merge(df1,df2,by.x="firstname",by.y ="gender")
如何合并这两个数据框?
【问题讨论】:
我有一个 dataframe1 的列包含名字,另一个 dataframe2 包含名字和相应的性别。
现在我想将dataframe2 的性别列添加到dataframe1 中,但它似乎不适用于以下行:
df2new <- merge(df1,df2,by.x="firstname",by.y ="gender")
如何合并这两个数据框?
【问题讨论】:
您可以为此使用 dplyr 包!
library(dplyr)
dataframe1 <- left_join(data_frame1,data_frame2,by="firstname")
【讨论】:
虽然 Vincent 的建议很棒,但我想提供另一种使用 base R 的方法,使用看起来与您的数据相似的东西。
df1 <- data.frame(name = c("Val","Sarah","Al"))
df2 <- data.frame(name = c("Joe","Jen","Kevin","Val","Sarah","Al"),
gender = c("M","F","M","F","F","M"))
df3 <- merge(df1, df2, by = intersect(colnames(df1), colnames(df2)))
【讨论】: