我有一个数据框,其中的一列(名称)包含以下值A,A,A,B,C,D,D,A,A,A,A,F,F,E,C,B 我想获取这些值的含义的列表,我的结果应类似于A,B,C,D,AF,E,C,B。
我尝试了以下代码:
data <- data %>%
group_by(ID) %>%
arrange(TIME) %>%
distinct(NAME)
但是,distinct
允许一个名称仅在列表/序列中包含一次。
还尝试通过指定fastmatch
对库fmatch(NAME, unique(NAME)
进行尝试,但遇到错误。
谢谢您的帮助!
答案 0 :(得分:0)
我们可以使用rleid
中的data.table
根据相邻元素之间的值差创建组,然后根据slice
的第一行
library(dplyr)
library(data.table)
data %>%
arrange(ID, TIME) %>%
group_by(ID, grp = rleid(NAME)) %>%
slice(1)
data <- data.frame(ID = rep(1:3, each = 5), TIME = Sys.Date() + 1:15,
NAME = c("A","A","A","B","C","D","D","A","A","A","F","F","E","C","B"))