gpt4 book ai didi

R - 删除在 data.frame 中多次出现的变量组合

转载 作者:行者123 更新时间:2023-12-01 09:19:23 29 4
gpt4 key购买 nike

假设我有一个数据框,df , 三个向量:

  colours   individual value
1 white individual 1 0.4
2 white individual 1 0.7
3 black individual 2 1.1
4 black individual 3 0.5

有时,同一个人多次出现相同颜色但值不同的情况。我想编写一些代码来删除所有发生这种情况的实例。

***编辑:行数超过 4 - 数百万 - 我认为当前的解决方案行不通。

我想计算我当前所在的字符串在我的 for 循环中出现了多少次,然后从 data.frame 中删除它们。所以在上面的例子中,我想去掉个体 1。然后 df 会留下另外两行。

到目前为止,我的方法是这样的:

  1. 获取所有颜色的列表

  2. 获取所有个人的列表

  3. 写两个for循环。

    colours <- unique(df$colours)
    ind <- unique(df$individual)
    for (i in ind)
    {
    for (c in colour)
    {
    #something here. Probably if, asking if the person I'm on in the loop
    #is found with the colour I am on, more than once, get rid of them
    }
    }

我的预期输出是这样的:

colours  individual   value

black individual 2 1.1

black individual 3 0.5

源数据

df <- data.frame(colours = c("white", "white", "black", "black"),
individual = c("individual 1", "individual 1", "individual 2", "individual 3"),
value = c(0.4, 0.7, 1.1, 0.5))

最佳答案

您可以尝试使用 dplyr 库中的 anti_join():

library(dplyr)
anti_join(df1, df1[duplicated(df1[1:2]),], by="individual")
# colours individual value
#1 black individual 3 0.5
#2 black individual 2 1.1

关于R - 删除在 data.frame 中多次出现的变量组合,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36356176/

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