R 根据条件创建唯一标识符-标识序列
我有一个变量x。我希望获得一个变量z,以便根据以下条件获取唯一标识符(此处为字母,但可以是数字):R 根据条件创建唯一标识符-标识序列,r,string,function,loops,R,String,Function,Loops,我有一个变量x。我希望获得一个变量z,以便根据以下条件获取唯一标识符(此处为字母,但可以是数字): 如果之前的观测值为零,当前为一,则需要唯一标识符 如果当前值和过去值为一,则为先前观测的相同标识符 如果当前观测值为零,则值NA (=1.)如果之前的观测值为零,电流为一,则为新的唯一标识符,以此类推: x z 0 NA 1 A 1 A 1 A 0 NA 1 B 1 B 0 NA 任何人都可能有办法做到这一点 library(data.t
x z
0 NA
1 A
1 A
1 A
0 NA
1 B
1 B
0 NA
library(data.table)
x = c(0, 1, 1, 1, 0, 1, 1, 0)
ifelse(x == 0, NA, rleid(x))
# [1] NA 2 2 2 NA 4 4 NA
如果愿意,您可以使用因子
重新标记它们。这假设您的输入总是0或1
x = c(0, 1, 1, 1, 0, 1, 1, 0)
replace(cumsum(x == 0), x == 0, NA)
#[1] NA 1 1 1 NA 2 2 NA
如果愿意,您可以使用
因子
重新标记它们。这假设您的输入总是0或1。正是我要找的!非常感谢。正是我想要的!非常感谢。几乎重复了Try:z几乎重复了Try:z
x = c(0, 1, 1, 1, 0, 1, 1, 0)
replace(cumsum(x == 0), x == 0, NA)
#[1] NA 1 1 1 NA 2 2 NA