【问题标题】:Use only numeric columns from DataFrame in a function在函数中仅使用 DataFrame 中的数字列
【发布时间】:2020-04-03 09:51:47
【问题描述】:

我有一个由一些数字列和一些非数字列组成的数据框

我尝试仅将数字列通过管道传输到 shapiro wilk 测试中,以查看要对它们执行哪些统计测试,但我无法让它工作

CRF %>% select_if(is.numeric) %>% shapiro.test()

返回

Error in shapiro.test(.) : is.numeric(x) is not TRUE

我认为这是因为最后我仍然通过了一个列表。但是,当我尝试使用 unlist 解构它或仅在其上运行 lapply 时仍然无法正常工作。

我的最终目标是一个向量,其中包含根据 shapiro wilk 测试不正常的所有值的所有名称,因此我可以稍后将其传递给进行统计分析的函数。

有什么想法吗?

谢谢

【问题讨论】:

    标签: r


    【解决方案1】:

    您想将shapiro.test 分别应用于每一列吗?你可以试试map_if

    purrr::map_if(CRF, is.numeric, shapiro.test)
    

    或者在基础 R 中使用 lapply

    lapply(CRF[sapply(CRF, is.numeric)], shapiro.test)
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2015-07-25
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-07-12
      相关资源
      最近更新 更多