r - 将数据映射到数据框中的列的更好方法?

标签 r dplyr

我有几个需要合并的大型数据框,有时会添加一个唯一的可识别列来合并它们。我使用这种方法,虽然有效,但似乎需要很长时间。基本上,使用 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/

相关文章:

r - RStudio在保存之前将R临时脚本文件存储在哪里?

r - dplyr 友好的用户函数,可与 join 函数一起使用

r - 从一列中选择一个值过滤另一列

r - 使用 dplyr 选择并绘制最高频率

sql - dbplyr、dplyr 和没有 SQL 等效项的函数 [例如 `slice()`]

r - 如何动态构建字符串并将其传递给 R 中 dplyr 的 mutate() 函数?

r - 查找函数返回的对象的名称

r - fdcu ylim 在绘图包 : hydroTSM - logaritmic y-axis 中不起作用

r - 使用 R 查找包含最大值的行索引

python - 每个 Flask session 存储大数据或服务连接