用于标记重复项的用户定义函数
User defined function for tagging duplicates
我正在尝试创建一个函数,该函数将根据 ID 号识别重复样本(行)并创建一个新列来写入重复样本(如果有)的测试顺序。
重复的样本将具有相同的 ID,但具有顺序的次要 ID。下面是我的意思的一个例子。
示例数据:
df <- data.frame(ID1=c(2528,2528,2528,2530,2533,2533),
ID2=c("G_54", "G_55", "G_53", "G_99", "G_252", "G_253"),
RESULT=c(.235, .237, .236, .325, .445, .446))
df
# ID1 ID2 RESULT
# 1 2528 G_54 0.235
# 2 2528 G_55 0.237
# 3 2528 G_53 0.236
# 4 2530 G_99 0.325
# 5 2533 G_252 0.445
# 6 2533 G_253 0.446
我希望结果如下所示:
#expected output
# ID1 ID2 RESULT RUN
# 2528 G_54 0.235 RUN2
# 2528 G_55 0.237 RUN3
# 2528 G_53 0.236 RUN1
# 2530 G_99 0.325 SINGLE
# 2533 G_252 0.445 RUN1
# 2533 G_253 0.446 RUN2
使用 dplyr:
library(dplyr)
df %>%
group_by(ID1) %>%
arrange(ID1, ID2) %>%
mutate(RUN = row_number(),
N = n(),
RUN = ifelse(N == 1, "SINGLE", paste0("RUN", RUN))) %>%
select(-N)
#result
# ID1 ID2 RESULT RUN
# 1 2528 G_53 0.236 RUN1
# 2 2528 G_54 0.235 RUN2
# 3 2528 G_55 0.237 RUN3
# 4 2530 G_99 0.325 SINGLE
# 5 2533 G_252 0.445 RUN1
# 6 2533 G_253 0.446 RUN2
我正在尝试创建一个函数,该函数将根据 ID 号识别重复样本(行)并创建一个新列来写入重复样本(如果有)的测试顺序。
重复的样本将具有相同的 ID,但具有顺序的次要 ID。下面是我的意思的一个例子。
示例数据:
df <- data.frame(ID1=c(2528,2528,2528,2530,2533,2533),
ID2=c("G_54", "G_55", "G_53", "G_99", "G_252", "G_253"),
RESULT=c(.235, .237, .236, .325, .445, .446))
df
# ID1 ID2 RESULT
# 1 2528 G_54 0.235
# 2 2528 G_55 0.237
# 3 2528 G_53 0.236
# 4 2530 G_99 0.325
# 5 2533 G_252 0.445
# 6 2533 G_253 0.446
我希望结果如下所示:
#expected output
# ID1 ID2 RESULT RUN
# 2528 G_54 0.235 RUN2
# 2528 G_55 0.237 RUN3
# 2528 G_53 0.236 RUN1
# 2530 G_99 0.325 SINGLE
# 2533 G_252 0.445 RUN1
# 2533 G_253 0.446 RUN2
使用 dplyr:
library(dplyr)
df %>%
group_by(ID1) %>%
arrange(ID1, ID2) %>%
mutate(RUN = row_number(),
N = n(),
RUN = ifelse(N == 1, "SINGLE", paste0("RUN", RUN))) %>%
select(-N)
#result
# ID1 ID2 RESULT RUN
# 1 2528 G_53 0.236 RUN1
# 2 2528 G_54 0.235 RUN2
# 3 2528 G_55 0.237 RUN3
# 4 2530 G_99 0.325 SINGLE
# 5 2533 G_252 0.445 RUN1
# 6 2533 G_253 0.446 RUN2