首页 > 解决方案 > R如何处理过滤数据帧

问题描述

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 打交道的问题。

任何输入表示赞赏,并让我知道如何进一步澄清。

谢谢你们!

标签: rdataframe

解决方案


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

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

另外,我建议您使用包 data.table:

RAVE_ITN_BVAS_ADVIS3[`Sensorineural deafness`==1]

最好的


推荐阅读