我有两个数据框:
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不起作用。
谢谢!
答案 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")]