我想知道是否有一种类似于dplyrMutations 连接的方法来连接一个矢量和一个数据帧,而不是两个数据帧.最终,我要实现的是基于数据帧中的键对来转换向量中的值.到目前为止,我想出的方法是:
vec <- c("hi", "hey", "hello")
df <- data.frame(
start = c("hi", "hello", "hey", "hallo"),
end = c("bye", "see ya", "adieu", "see you later alligator"))
data.frame(bla = vec) %>%
left_join(df, by =c("bla"="start")) %>%
magrittr::use_series("end")
正确返回
[1] "bye" "adieu" "see ya"
这种方法奏效了,但必须创建一个基于vec
的新数据框似乎很愚蠢.我更喜欢直接使用向量.请注意,简单地基于vec
过滤df
是不够的,因为这不会保持值的相同顺序.
filter(df, start %in% vec) %>%
magrittr::use_series("end")
返回错误
[1] "bye" "see ya" "adieu"
谢谢!