比较两个数据帧中的两列因子,得到条目存在于r的两个数据帧中

时间:2015-10-13 01:16:46

标签: r compare

我有两个数据框:

DF1

vehicle  speed  time
a         23     234
b         34     421
d         45     290

DF2

vehicle  speed  time
a         29     215
b         54     450
c         45     21
f         40     367

两个车辆列都是因素。我想找到普通车辆并将相应的df2 $时间添加到df1,将其命名为time.2。

我想要的输出:

DF1

vehicle  speed  time    time.2
a         23     234     215
b         34     421     450

我试过了:

df1 <- df1[df1$vehicle %in% df2$vehicle, ]
df2 <- df2[df2$vehicle %in% df1$vehicle, ]
df1 <- cbind(df1, time.2 = df2$time)

但是在前两个命令之后,df1和df2都有0行。我之前尝试过,当我使用另一个数据框来比较车辆和df1时,它可以工作。我不知道为什么df2不起作用。

谢谢!

2 个答案:

答案 0 :(得分:1)

尝试:

library(dplyr)

inner_join(df1,
           df2 %>%
             select(-speed) %>%
             rename(time.2 = time) )

答案 1 :(得分:1)

使用merge()功能:

df1$vehicle <- as.character(df1$vehicle)
df2$vehicle <- as.character(df2$vehicle)
df <- merge(df1, df2, by="vehicle")
df <- df[, c("vehicle.x", "speed.x", "time.x", "time.y")]