我有几个需要合并的大型数据框,有时会添加一个唯一的可识别列来合并它们。我使用这种方法,虽然有效,但似乎需要很长时间。基本上,使用 dplyr,我获取变量的不同
返回值,然后为每个变量变异
一个新变量,然后合并
该变量返回到原始数据帧。有没有更好的方法来实现这一点?
df <- tibble(
x = rep(LETTERS, 10)
)
df %>%
distinct(x) %>%
mutate(y = 1:nrow(.)) %>%
right_join(df)
最佳答案
我们可以使用match
library(dplyr)
df %>%
mutate(y = match(x, unique(x)))
或使用因子
df %>%
mutate(y = as.integer(factor(x, levels = unique(x))))
或者使用group_indices
df %>%
mutate(y = group_indices(., x))
关于r - 将数据映射到数据框中的列的更好方法?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53749023/