【问题标题】:How I can sort these data with Missing data in R [duplicate]如何使用 R 中的缺失数据对这些数据进行排序 [重复]
【发布时间】:2021-12-29 16:20:30
【问题描述】:

这是我的数据示例:

df<-read.table (text="ID    Name    Surname Colour  A1  A2  A3  Flow1   Day1    M1  M2  M3  Flow2   Day2    P1  P2  P3  Flow3   Day3
12  John    Smith   A   NA  NA  NA  NA  NA  NA  NA  NA  NA  NA  NA  NA  NA  NA  N
12  John    Smith   B   NA  NA  NA  NA  NA  NA  NA  NA  NA  NA  NA  NA  NA  NA  N
12  John    Smith   M   4   4   4   A   N   4   3   3   B   Y   2   3   2   Q   N
12  John    Smith   N   2   3   3   D   N   3   1   2   G   Y   3   3   2   R   N
22  Rose    Billy   OM  3   3   3   C   N   3   3   3   O   Y   3   4   4   G   N
22  Rose    Billy   OZ  4   4   4   F   N   4   4   4   P   N   5   5   5   G   N
22  Rose    Billy   QR  NA  NA  NA  NA  NA  NA  NA  NA  NA  NA  NA  NA  NA  NA  NA
22  Rose    Billy   QP  NA  NA  NA  NA  NA  NA  NA  NA  NA  NA  NA  NA  NA  NA  NA

", header=TRUE)

我想得到这个结果:

 

   out<-read.table (text="ID    Name    Surname Colour  A1  A2  A3  Flow1   Day1    M1  M2  M3  Flow2   Day2    P1  P2  P3  Flow3   Day3
    12  John    Smith   M   4   4   4   A   N   4   3   3   B   Y   2   3   2   Q   N
    12  John    Smith   N   2   3   3   D   N   3   1   2   G   Y   3   3   2   R   N
    22  Rose    Billy   OM  3   3   3   C   N   3   3   3   O   Y   3   4   4   G   N
    22  Rose    Billy   OZ  4   4   4   F   N   4   4   4   P   N   5   5   5   G   N

    ", header=TRUE)

如您所见,我想获取每种颜色的数据并减少我的数据集。

【问题讨论】:

  • 我认为这不是重复查询

标签: r


【解决方案1】:

我们可以使用na.omit()

library(dplyr)
df %>% 
  na.omit()
ID Name Surname Colour A1 A2 A3 Flow1 Day1 M1 M2 M3 Flow2 Day2 P1 P2 P3 Flow3 Day3
3 12 John   Smith      M  4  4  4     A    N  4  3  3     B    Y  2  3  2     Q    N
4 12 John   Smith      N  2  3  3     D    N  3  1  2     G    Y  3  3  2     R    N
5 22 Rose   Billy     OM  3  3  3     C    N  3  3  3     O    Y  3  4  4     G    N
6 22 Rose   Billy     OZ  4  4  4     F    N  4  4  4     P    N  5  5  5     G    N

【讨论】:

  • 为什么在我继续到第 6 天时这不起作用。有什么帮助吗?
  • 如果您的数据具有相同的结构,它也应该适用于任何额外的 Day。所以也许你可以dput 新数据(直到第 6 天)。
【解决方案2】:

我们可以使用acrossfilter - 根据输入数据/预期输出,它似乎删除了列('A1' 到'Day3')都是NAs 的行

library(dplyr)
df %>%    
   filter(across(A1:Day3,  complete.cases))

-输出

ID Name Surname Colour A1 A2 A3 Flow1 Day1 M1 M2 M3 Flow2 Day2 P1 P2 P3 Flow3 Day3
1 12 John   Smith      M  4  4  4     A    N  4  3  3     B    Y  2  3  2     Q    N
2 12 John   Smith      N  2  3  3     D    N  3  1  2     G    Y  3  3  2     R    N
3 22 Rose   Billy     OM  3  3  3     C    N  3  3  3     O    Y  3  4  4     G    N
4 22 Rose   Billy     OZ  4  4  4     F    N  4  4  4     P    N  5  5  5     G    N

【讨论】:

  • 谢谢,但是当我继续其他颜色的数据时,我没有得到数据,我们可以吗?
  • 我们可以为专栏做吗?例如,如果我有直到第 6 天的数据
  • 对不起,如果你看颜色,你会看到其他颜色 QR 和 Qand QP。所以我想为这些颜色在其他列中提供这些数据。感谢您的帮助
  • @user330 这个输出和你预期的'out`不一样
  • 谢谢,它确实适用于这些数据,谢谢 - 但是当我有更多类似的数据时,比如直到第 6 天作为最后一列,代码 dioes 不起作用
猜你喜欢
  • 2023-01-01
  • 2014-01-29
  • 1970-01-01
  • 2014-07-14
  • 2021-11-16
  • 2019-06-25
  • 1970-01-01
  • 1970-01-01
  • 2012-07-20
相关资源
最近更新 更多