r - 用于标记重复项的用户定义函数

标签 r function duplicate-data

我正在尝试创建一个函数,该函数将根据 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

关于r - 用于标记重复项的用户定义函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33244986/

相关文章:

r - 如何将函数应用于 data.frame 的每个元素?

c++ - 加速 C/Rcpp 中 Dice 系数的计算

python - 修改python中内部函数的函数变量

谁能帮我用递归解决这个问题?

javascript - 使用 arguments 伪参数作为可写的东西

MySql - 两个表上的 INNER JOIN - 重复结果

mysql - 如何防止mysql插入查询中出现重复记录?

ec2 上的 R 程序似乎很慢?

r - 如何使用 bquote() 在 scale_x_discrete() 内的 ggplot2 中动态创建标签?

iframe - 如何向谷歌显示我网站上的视频是重复的