【问题标题】:My dplyr::filter function keeps displaying different errors我的 dplyr::filter 函数不断显示不同的错误
【发布时间】:2021-12-07 21:39:04
【问题描述】:

我正在对 VCF 文件进行分析,使用 vcfR::maf 函数后,我得到了一个包含四列的数据框:A、B、C、D,每列都有数字作为值,没有 NA。

I output the data frame to a csv and this is what it looks like

我将此数据框命名为 AF,现在尝试根据值根据 D 列过滤行,只留下 D 列中编号 >= 0.1 的行,并将新数据框命名为 AF_MAF

我用过这段代码

AF2_MAF <- AF2 %>% filter (Frequency>=0.1)

遇到不同的错误后,我搜索了解决方案并做到了

library(magrittr)

library(dplyr)

现在我收到一个新错误:

UseMethod("filter") 中的错误: 没有适用于“过滤器”的方法应用于“c('matrix','array','double','numeric')”类的对象

我搜索了一下,没有找到对应的解决方案。请帮忙,非常感谢!

【问题讨论】:

  • AF2 似乎是一个矩阵。试试AF2_MAF <- AF2 %>% as.data.frame() %>% filter (Frequency>=0.1)
  • !有效!!!非常感谢!

标签: r dplyr filter


【解决方案1】:

从错误消息看来,AF2 是一个矩阵,您可以将其更改为数据框,然后您的代码应该可以工作。

AF2_MAF <- AF2 %>% as.data.frame() %>% filter (Frequency>=0.1)

或者,您也可以对矩阵进行子集化。

AF2_MAF <- AF2[AF2[, "Frequency"] >= 0.1, ]

【讨论】:

  • 非常感谢!我是 R 新手,没有意识到格式问题,所以我只是假设输出是一个数据框,而没有意识到还有另一种格式称为矩阵。感谢您指出问题!
  • 哦!谢谢提醒,刚刚实现了这个功能;D
【解决方案2】:

使用来自base Rsubset

subset(AF2, AF2[, "Frequency"] >= 0.1)

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2017-05-09
    • 2021-02-20
    • 1970-01-01
    • 2012-03-08
    • 2022-12-04
    • 1970-01-01
    • 2019-06-14
    • 2021-08-07
    相关资源
    最近更新 更多