繁体   English   中英

比较来自两个数据帧的两列因子,得到在两个数据帧中都存在的项

[英]Compare two columns of factors from two data frame, get the entries exist in both data frame in r

我有两个数据框:

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

车辆的两个列都是因素。 我想找到普通车辆,并在df1中添加相应的df2 $ time,将其命名为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不起作用。

谢谢!

尝试:

library(dplyr)

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

使用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")]

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM