【问题标题】:Function for Shapiro Test夏皮罗测试的功能
【发布时间】:2021-05-12 07:31:21
【问题描述】:

我正在尝试编写一个函数来为我的数据框中的多个列运行 shapiro 测试。我尝试使用以下代码,但它一直返回此错误。 我已确保相关列是数字。

fun1<- function(x){
  shapiro.test(names(data)[22:31])
}

这是我遇到的错误

Error in shapiro.test(names(TBI)[22:31]) : is.numeric(x) is not TRUE

【问题讨论】:

    标签: r function statistics


    【解决方案1】:

    如果我理解您的意图,您希望在数据框 data 和列 22:31 上运行 shapiro 测试。然后你应该可以用lapply生成一个测试结果列表

    stests <- lapply(data[, 22:31], function(x) shapiro.test(x))
    

    请注意,数据框是一种特殊类型的列表,您可以引用数据框列的子集。

    顺便说一句,names(data)[22:31] 返回列名的字符向量,而不是实际的列内容。

    【讨论】:

    • 非常感谢,效果很好!
    • 太好了,你能提高答案吗?谢谢。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-03-11
    • 1970-01-01
    • 2012-06-06
    • 2017-05-20
    • 1970-01-01
    • 2021-10-22
    相关资源
    最近更新 更多