r - 将数据映射到数据框中的列的更好方法?
问题描述
我有几个需要合并的大型数据框,有时会添加一个唯一可识别的列来合并它们。我使用这种可行的方法,但似乎需要很长时间。基本上,使用dplyr
,我获取一个变量的distinct
返回值,然后mutate
为每个变量获取一个新变量,然后merge
将该变量返回到原始数据帧。有没有更好的方法来实现这一点?
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)))
或与factor
df %>%
mutate(y = as.integer(factor(x, levels = unique(x))))
或与group_indices
df %>%
mutate(y = group_indices(., x))
推荐阅读
- python - model.predict 类与数据集类不匹配
- android - ionic cordova build android - 构建失败并出现异常
- json.net - JToken.DeepEquals 支持自动修剪字符串值吗?
- html - dom重新加载时防止默认值不起作用
- c# - Azure 函数上的 FixedDelayRetry 属性无法正常工作
- javascript - 如何滚动到特定元素
- laravel - 在 Laravel 8 中使用 Cloudinary
- java - 解析 JSONObject 时出错
- python - 随机改变调用函数的顺序
- excel - VBA:如何移动每个后续值的值和偏移量