选择列中具有重复值的特定行,但在 R 中重复行的某一列中为空值

  • 本文关键字:一列 空值 选择 但在 r
  • 更新时间 :
  • 英文 :


我是堆栈溢出的新手。如果标题无法理解,我很抱歉。下次我会努力做得更好。

我有一个数据框,第一列中有重复的值,但它们各自行的最后一列不同(很少是空白的,其他可能有一些值)。我一直在尝试消除最后一列中带有空白字段的重复项,但每次我使用"duplicated()"或"unique()"函数时,我只剩下带有空白字段的行。这可能是因为行的排序方式使空白字段位于最后一列中具有值的行上方。

例如输入:

 *No.   per         hmm        qty*
  1    BARBIE123     new         1
  2    AYLIK32     * N/A*        1
  3    AYLIK32       new         1
  4     BARB         mid         1

我不断得到的输出:

*No.   per      hmm        qty*
1    BARBIE    new         1
2    AYLIK   * N/A*        1
4     BARB     mid         1

期望输出:

*No.   per      hmm        qty*
1     BARBIE    new         1
3     AYLIK     new         1
4     BARB      mid         1

有没有办法指定要保留哪一行以及要删除哪一行?

感谢所有的帮助。如果问题不可理解,请告诉我。提前谢谢。

嗯,不确定这是否是你想要的。这将删除所有带有 NA 的行。

df <- df[complete.cases(df), ]

假设您在其他列中有 NA,并且您不希望考虑这些 NA。若要仅查看单个列中的 NA,请使用以下命令:

df <- df[complete.cases(df[,3]), ]

其中 3 是要在其中查找 NA 的列的 #。

也许这对你有用

df <- read.table(text="No.   per         hmm        qty*
1    BARBIE123     new         1
2    AYLIK32       N/A        1
3    AYLIK32       new         1
4     BARB         mid         1", header=TRUE, stringsAsFactors=FALSE)
library(dplyr)
df %>%
  filter(!duplicated(per, fromLast=TRUE))
  # No.       per hmm qty.
# 1   1 BARBIE123 new    1
# 2   3   AYLIK32 new    1
# 3   4      BARB mid    1

最新更新