【问题标题】:How does R handle filtering data frames [duplicate]R如何处理过滤数据帧[重复]
【发布时间】:2019-06-15 05:28:22
【问题描述】:

相对 R 的新用户,我仍在尝试了解 R 如何处理数据帧。

具体来说,我正在尝试根据列值过滤数据框。

Python pandas 等价物是:

df_temp = df.loc[df['col1']==1,'col1']

根据我的经验,这会返回一个所有值都等于 1 的系列。

我试图在 R 中做类似的事情,我有一个数据框,我正在使用下面的代码,但是,我不断得到返回值为 1 和“NA”的全长列

temp <- RAVE_ITN_BVAS_ADVIS3[RAVE_ITN_BVAS_ADVIS3$`Sensorineural deafness`==1, 'Sensorineural deafness']

所以我的问题有两个:

  1. 有没有更好的方法来过滤 R 中的数据帧?

  2. R 是否只是将所有不等于 1 的值转换为 NA,然后返回全长列?如果是这样,这将是令人沮丧的,因为它总是会带来与 NA 打交道的问题。

感谢您的任何意见,并让我知道如何进一步澄清。

谢谢大家!

【问题讨论】:

  • 你能和dput()分享你的数据吗
  • 试试df.loc[df[['col1']]==1,'col1']。带双[[
  • 感谢@Parfait,这导致我使用: temp Sensorineural deafness==1), 'Sensorineural deafness'] 这将返回一个向量,正如我所期望的只有 1 秒

标签: r dataframe


【解决方案1】:

您可以使用包dplyr并使用功能过滤器:

filter(RAVE_ITN_BVAS_ADVIS3, `Sensorineural deafness`==1)

另外,我推荐你使用包data.table:

RAVE_ITN_BVAS_ADVIS3[`Sensorineural deafness`==1]

最好的

【讨论】:

    【解决方案2】:

    感谢大家的意见,我最终发现我相信这里有一个类似的问题(感谢 Parfait 的评论)

    Subsetting R data frame results in mysterious NA rows

    我最终使用了:

    temp <- RAVE_ITN_BVAS_ADVIS3[which(RAVE_ITN_BVAS_ADVIS3$`Sensorineural deafness`==1),
                                 'Sensorineural deafness']
    

    返回:

     [1] 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1
    

    之前提供的没有使用的代码:

    temp <- RAVE_ITN_BVAS_ADVIS3[RAVE_ITN_BVAS_ADVIS3$`Sensorineural deafness`==1,
                                'Sensorineural deafness']
    
    
       [1]  1  1 NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA
      [42] NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA  1 NA
      [83] NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA
     [124] NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA
     [165] NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA
     [206] NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA
     [247] NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA
     [288] NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA
     [329] NA NA NA NA NA NA  1 NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA
     [370] NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA
     [411] NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA
     [452] NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA
     [493] NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA
     [534] NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA  1  1 NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA
     [575] NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA
     [616] NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA
     [657] NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA
     [698] NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA
     [739] NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA
     [780] NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA
     [821] NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA
     [862] NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA
     [903] NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA
     [944] NA NA NA NA NA NA NA NA NA NA NA  1 NA NA NA NA NA NA NA NA NA NA NA  1  1 NA NA NA NA NA NA NA NA NA NA  1 NA NA NA NA NA
     [985] NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA
     [ reached getOption("max.print") -- omitted 2499 entries ]
    

    【讨论】:

      猜你喜欢
      • 2019-08-08
      • 2022-07-29
      • 1970-01-01
      • 2021-01-29
      • 2011-08-28
      • 2021-10-25
      • 1970-01-01
      • 2012-11-14
      • 1970-01-01
      相关资源
      最近更新 更多