gpt4 book ai didi

R:根据列中的类别从数据框中删除重复项

转载 作者:行者123 更新时间:2023-12-04 12:01:30 24 4
gpt4 key购买 nike

这是我的示例数据集:

      Name Course Cateory
1: Jason ML PT
2: Jason ML DI
3: Jason ML GT
4: Jason ML SY
5: Jason DS SY
6: Jason DS DI
7: Nancy ML PT
8: Nancy ML SY
9: Nancy DS DI
10: Nancy DS GT
11: James ML SY
12: John DS GT

我想删除重复的行以在整个数据框中具有唯一的行。删除重复行基于列 category 中的值. category 中对值的偏好列按此顺序给出 {'PT','DI','GT','SY'}。

我的输出数据框如下所示:
  Name Course Cateory
1: Jason ML PT
2: Jason DS DI
3: Nancy ML PT
4: Nancy DS DI
5: James ML SY
6: John DS GT

目前,我正在使用 for 的组合循环和 if健康)状况。由于输入数据框很大(1000 万行),它需要永远。有没有更好更有效的方法来执行相同的操作?

最佳答案

这是一个片段,可以满足您的要求:

df$Category <- factor(df$Category, levels = c("PT", "DI", "GT", "SY"))

df <- df[order(df$Category),]

df[!duplicated(df[,c('Name', 'Course')]),]

输出:
Name Course Category
Jason ML PT
Nancy ML PT
Jason DS DI
Nancy DS DI
John DS GT
James ML SY

想法是我们根据优先级结构进行排序。然后我们应用唯一操作,这将返回第一个匹配项。返回将是我们想要的。

关于R:根据列中的类别从数据框中删除重复项,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47539860/

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