如何获取 R 中字符的首次出现



我有一个带有重复 ID 的dataframe,我想得到一个包含每个 ID 第一次出现的colunm

例如:

ID <- as.character( "ae61_10", "ae61_10", "ae61_10", "ae61_10", "ae61_10", "ae61_1",  "ae61_1", "ae61_1",  "ae61_11", "ae61_2",  "ae61_2",  "ae61_3",  "ae61_4",  "ae61_4", "ae61_5",  "ae61_6",  "ae61_7",  "ae61_8",  "ae61_8",  "ae61_8",  "ae61_9")
df <- data.frame(ID)
df
ID
1  ae61_10
2  ae61_10
3  ae61_10
4  ae61_10
5  ae61_10
6   ae61_1
7   ae61_1
8   ae61_1
9  ae61_11
10  ae61_2
11  ae61_2
12  ae61_3
13  ae61_4
14  ae61_4
15  ae61_5
16  ae61_6
17  ae61_7
18  ae61_8
19  ae61_8
20  ae61_8
21  ae61_9

我想获取 colunmFIRST_OC,如果这是第一次出现 ID,它会返回1,如果不是,则返回0。喜欢这个:

ID FIRST_OC
1  ae61_10        1
2  ae61_10        0
3  ae61_10        0
4  ae61_10        0
5  ae61_10        0
6   ae61_1        1
7   ae61_1        0
8   ae61_1        0
9  ae61_11        1
10  ae61_2        1
11  ae61_2        0
12  ae61_3        1
13  ae61_4        1
14  ae61_4        0
15  ae61_5        1
16  ae61_6        1
17  ae61_7        1
18  ae61_8        1
19  ae61_8        0
20  ae61_8        0
21  ae61_9        1

我试过这个命令,但它不起作用:

df$FIRST_OC <- 0
FIRST_OC <- df[match(unique(df$ID), df$ID),]
df$FIRST_OC[which(df$ID %in% FIRST_OC)] <- 1

有人可以帮助我找出出了什么问题吗?

非常感谢。

duplicated

是要使用的函数!

df$FIRST_OC <- ifelse(!duplicated(df$ID), 1, 0)
# OR
df$FIRST_OC <- as.numeric(!duplicated(df$ID))

我们可以使用duplicated

+(!duplicated(df$ID))
#[1] 1 0 0 0 0 1 0 0 1 1 0 1 1 0 1 1 1 1 0 0 1

相关内容

  • 没有找到相关文章

最新更新