【问题标题】:Error in UseMethod("select_")使用方法中的错误(“select_”)
【发布时间】:2016-08-05 19:05:42
【问题描述】:

潜伏已久,第一次发帖。

我正在学习 R 入门课程,我正在尝试为糖尿病“diabage2”的诊断年龄和他们的胰岛素使用“胰岛素”(是/否/NA)创建直方图和摘要。数据集是 brfss2013。

我的第一次尝试是brfss2013 %>% group_by(insulin = "Yes") %>% summarise(MEAN = mean(brfss2013$diabage2, na.rm = TRUE), n = n())

  insulin     MEAN      n
    <chr>    <dbl>  <int>
1     Yes 51.48694 491775

这看起来不错,除了我知道 MEAN 和 n 是针对样本均值和 n 报告的,而不是样本的选定部分(我在项目的另一部分遇到了这个问题 - 不知道为什么它不起作用.我可以验证答案不正确。)

当我尝试使用子集()并仅选择满足我的条件的数据时,我可以轻松地对其进行总结并制作直方图(即一组数据,其中胰岛素 = 是,一组数据表示胰岛素 = 否)

wInsulin <- subset(brfss2013, insulin = "Yes", select = c(diabage2))
woInsulin <- subset(brfss2013, insulin = "No", select = c(diabage2))

这些看起来是一样的,尽管它们不应该包含任何相同的观察结果,因为它们是相互排斥的。

当我尝试使用 select() 将我使用的变量集从 330 个变量减少到三个时,我遇到了另一个问题:

InsulinData <- select(brfss2013$insulin, brfss2013$diabage, brfss2013$sex, brfss2013$X_state)

给了我错误

Error in UseMethod("select_") : 
  no applicable method for 'select_' applied to an object of class "factor"

我不知道该怎么做。

我觉得我错过了一些非常基本的东西,但我缺乏经验意味着我没有基础来理解很多其他人的问题的解决方案,而且到目前为止,这门课程涵盖的统计理论比与 R 打交道的实际细节。如果能得到任何指导,我将不胜感激。

【问题讨论】:

  • brfss2013 不附带 dplyr 包,因此您可能希望使其更明确地可重现。通常,人们会编写抓取或加载数据集的代码,例如library(whatever)
  • 我在这里看到了一些错误,比如insulin = "Yes" 而不是==;在 dplyr 链中引用带有 $ 的 cols;当 dplyr 成语是 filter (或一些类似的词)时使用 subset。我建议从顶部浏览 R 介绍文档,并在其中浏览一些示例:cran.r-project.org/doc/manuals/r-release/R-intro.html

标签: r dplyr


【解决方案1】:

你几乎有这个:

InsulinData <- select(brfss2013$insulin, 
                      brfss2013$diabage, 
                      brfss2013$sex, 
                      brfss2013$X_state)

应该是:

InsulinData <- select(brfss2013, insulin, diabage, sex, X_state)

使用dplyr,您只需指定一次data.frame。 select 以为您正在尝试从变量 brfss2013$insulin 中选择列,但您不能。

另外,你的第一组指令有点混乱:

group_by(insulin = "yes")

group_by(insulin) 并按 filter(insulin == "yes") 过滤行

可能想要更像:

brfss2013 %>% 
  group_by(insulin) %>% 
    summarise(MEAN = mean(diabage2, na.rm = TRUE), n = n())

【讨论】:

    猜你喜欢
    • 2023-04-06
    • 1970-01-01
    • 1970-01-01
    • 2020-05-25
    • 1970-01-01
    • 1970-01-01
    • 2018-11-02
    • 1970-01-01
    • 2017-12-10
    相关资源
    最近更新 更多