r - 如何为非重复行创建唯一标识符?
问题描述
我正在尝试为列创建一个标志变量,该变量应随该position
列的每次出现而改变。例如,这是一个data_frame
:
df <- data_frame(
variable = c('Position',
'Department',
'Location',
'Position',
'Department',
'Location',
'Location'
)
)
df
# A tibble: 7 x 1
variable
<chr>
1 Position
2 Department
3 Location
4 Position
5 Department
6 Location
7 Location
如何创建类似于此ID
变量的内容?我现在可以拆分此变量并根据需要合并单元格。
# A tibble: 7 x 2
variable id
<chr> <chr>
1 Position A
2 Department A
3 Location A
4 Position B
5 Department B
6 Location B
7 Location B
更好的方法是合并variable
列中具有重复项的任何单元格。
解决方案
vector
我们根据 'variable' 中的 'Position' 元素的出现创建一个逻辑,获取累积和 ( cumsum
) 并使用该数字索引更改为LETTERS
library(dplyr)
df %>%
mutate(id = LETTERS[cumsum(variable== 'Position')])
# A tibble: 7 x 2
# variable id
# <chr> <chr>
#1 Position A
#2 Department A
#3 Location A
#4 Position B
#5 Department B
#6 Location B
#7 Location B
推荐阅读
- spring - Spring boot 2.4 反转文档顺序
- python - 将带有标题的文本文件转换为熊猫数据框
- python - 我的 Collatz 猜想代码处于无限循环中。当程序执行时,我输入的任何数字都不会改变。想法?
- javafx - 应用程序失去焦点时释放助记符
- c - 为什么 if (2 < 9 < 3) 为真?
- keystroke - Hammerspoon:不断向一个应用程序发送击键,同时正常使用其他应用程序
- c# - 更改 RenderTexture 中的像素
- haskell - 我如何知道(mega)parsec 解析器是否可以在没有实验的情况下消耗输入 - 似乎没有记录
- haskell - 我如何在haskell中显示空格数
- nginx - Nginx 不会为 Web 应用程序提供服务