r - 创建一个索引变量,随着 R 中的每个新值递增 1
问题描述
如何将索引变量添加到 R 中的数据框,每个新值递增 1?如果我有一个变量var
,如下例所示,我该如何创建变量index
(最好使用 tidyverse)?
library(tidyverse)
df <- tibble( var = c(1, 1, 3, 4, 4, 6))
df
#> # A tibble: 6 x 1
#> var
#> <dbl>
#> 1 1
#> 2 1
#> 3 3
#> 4 4
#> 5 4
#> 6 6
desired_output <- tibble(
var = c(1, 1, 3, 4, 4, 6),
index = c(1, 1, 2, 3, 3, 4)
)
desired_output
#> # A tibble: 6 x 2
#> var index
#> <dbl> <dbl>
#> 1 1 1
#> 2 1 1
#> 3 3 2
#> 4 4 3
#> 5 4 3
#> 6 6 4
解决方案
使其成为一个因素,然后将其转换为数字。
df %>% mutate(index = as.integer(factor(var)))
#> # A tibble: 6 x 2
#> var index
#> <dbl> <int>
#> 1 1 1
#> 2 1 1
#> 3 3 2
#> 4 4 3
#> 5 4 3
#> 6 6 4
推荐阅读
- php - 使用 jAutoCalc 时动态表单插入 SQL php
- javascript - 如何使 onclick 函数与 jquery 一起工作?
- types - 将值从highestbars() 传递到lowestbars() 的问题
- c# - 在 OpenXML 中创建包含变量列的表
- python - 如何使用 pandas 合并多个数据框并为假人添加一列?
- python - 通过在列标题中查找唯一值来更新 csv 行中的“单元格”?
- amazon-web-services - 无法在 AWS 中 ping 域名
- android - MutableStateFlow 事件被覆盖
- http - Url 引擎重写 example.com/www 问题
- javascript - 使用 Promise 时将变量传递到外部作用域的最佳实践是什么?