gpt4 book ai didi

r - 在数据框中的重复数据之间进行选择

转载 作者:行者123 更新时间:2023-12-05 00:02:32 26 4
gpt4 key购买 nike

早些时候我问了一个 question关于从数据框中提取重复行。我现在需要运行一个脚本来决定将哪些重复项保留在我的最终数据集中。

此数据集中的重复条目具有相同的“分析”和“样本”值。这是我使用的包含重复条目的新数据集的前 10 行:

     Assay   Sample    Genotype   Data
1 CCT6-002 1486 A 1
2 CCT6-002 1486 G 0
3 CCT6-002 1997 G 0
4 CCT6-002 1997 NA NA
5 CCT6-002 0050 G 0
6 CCT6-002 0050 G 0
7 CCT6-015 0082 G 0
8 CCT6-015 0082 T 1
9 CCT6-015 0121 G 0
10 CCT6-015 0121 NA NA

我想运行一个脚本,根据“数据”的值(可以是 1、0 或 NA)将这些重复样本分成 4 个箱:
 1) All values for 'Data' are NA
2) All values for 'Data' are identical, no NA
3) At least 1 value for 'Data' is not identical, no NA.
4) At least 1 value for 'Data' is not identical, at least one is NA.

上述数据的预期结果如下所示;
Set 1
Null

Set 2
5 CCT6-002 0050 G 0
6 CCT6-002 0050 G 0

Set 3
1 CCT6-002 1486 A 1
2 CCT6-002 1486 G 0
7 CCT6-015 0082 G 0
8 CCT6-015 0082 T 1

Set 4
3 CCT6-002 1997 G 0
4 CCT6-002 1997 NA NA
9 CCT6-015 0121 G 0
10 CCT6-015 0121 NA NA

在某些情况下,此数据集中存在超过 2 个“重复”数据点。我什至不确定从哪里开始,因为我是 R 的新手。

编辑:使用预期数据。

最佳答案

您提出的问题与要求他人为您完成所有工作的方向不同。关于该项目的单个特定部分的问题可能更有可能吸引回应。阻碍您开始的部分是一项非常基本的编程技能:能够将您的问题分解为具体的小步骤,单独解决每个步骤,然后将它们重新组合在一起以解决您的原始问题。

不过,这项技能也很难学。但是你有一个好的开始!您已经很好地指定了您的数据可以归入的四组:

  • “数据”的所有值都是 NA
  • “数据”的所有值都是
    相同,无 NA
  • “数据”的至少 1 个值不相同,不
    不适用。
  • 'Data' 至少有 1 个值不相同,至少有一个是
    不适用。

  • 现在您需要考虑如何,如果您只有一个数据子集,您能否弄清楚如何在 R 中确定它属于哪个组 (1-4)?以下是一些可能对执行此操作有用的工具的草图。构建一些子集并在控制台中播放,直到您可以轻松识别每个组:

    (1) 是 datSub$Data 的所有值吗? NA ?

    工具: allis.na
    (2) 只有一个唯一值,而不是 NA ?

    工具: length , unique , is.na , any
    (3) 多个唯一值,无 NA ?

    工具: length , unique , any , is.na
    (4) 多个唯一值,至少一个 NA ?

    工具: length , unique , any , is.na
    不使用所有这些功能也可以做到这一点,但它们都有潜在的用处。

    一旦您知道如何确定特定子集应该在哪个组中,您就可以将该代码包装到一个函数中了。我的建议是创建一个值为 1-4 的新列,具体取决于该子集属于哪个组:
    myFun <- function(x){
    if (...){
    x$grp <- 1
    }
    if (...){
    x$grp <- 2
    }
    #etc.

    return(x)
    }

    然后使用 ddply根据 Sample 的值将此函数应用于数据的每个子集:
    ddply(dat,.(Sample),.fun = myFun)

    最后在其新的 grp 上拆分此数据框多变的:
    split(dat,dat$grp)

    希望这个通用草图可以帮助您入门。但是你会遇到问题。每个人都会。如果您在此过程中遇到特定问题,请随时提出另一个问题。

    事实上,我现在看到约翰已经按照我的草图发布了一个答案。但是,无论如何我都会发布这个答案,希望它可以帮助您分析 future 的问题。

    关于r - 在数据框中的重复数据之间进行选择,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7841867/

    26 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com