我是R的新手,我有一个包含用户ID列表的海量数据文件。我想用每个id从1开始的数字替换那些用户ID。这可能吗?
这就是我所拥有的:
这就是我想要的:
答案 0 :(得分:2)
使用as.factor
方法尝试此解决方案:
在df
中,您有输入数据:
df<-data.frame(ID=c(7001,7001,8001,8002),A=c(1,2,3,4))
df
ID A
1 7001 1
2 7001 2
3 8001 3
4 8002 4
替换ID
df$ID<-as.numeric(as.factor(df$ID))
df
ID A
1 1 1
2 1 2
3 2 3
4 3 4
答案 1 :(得分:0)
我们可以使用match
按照唯一ID的出现顺序获取索引
dat$ID <- with(dat, match(ID, unique(ID)))
dat$ID
#[1] 1 1 2 3
或使用.GRP
data.table
library(data.table)
setDT(dat)[, ID := .GRP, ID]
基于OP的描述,
dat$ID <- cumsum(c(TRUE, diff(dat$E) < 0))