【问题标题】:T test in R and problems with runR中的T测试和运行问题
【发布时间】:2021-01-06 14:50:47
【问题描述】:

当我想在结果控制台中进行 t-test 时,我会给出反馈: Błąd wpoleceniu 'var(x)':在因子 x 上调用 var(x) 已失效。 使用类似 'all(duplicated(x)[-1L])' 的东西来测试一个常数向量。 Dodatkowo: Komunikat ostrzegawczy: Wpoleceniu 'mean.default(x)':参数不是数字或逻辑:返回 NA。

什么意思?

【问题讨论】:

    标签: r t-test


    【解决方案1】:

    在 R 中,有一种数据称为factor

    考虑以下两组数据:

    set1 <- round(rnorm(10,5,2))
    set1
     [1] 6 3 4 5 7 3 5 7 5 7
    set2 <- round(rnorm(10,10,2))
    set2
     [1] 11  9  5 11 11 10  9  7  8  9
    

    您可以按如下方式执行 t 检验:

    t.test(set1,set2)
        Welch Two Sample t-test
    data:  set1 and set2
    t = -4.8347, df = 17.147, p-value = 0.0001515
    

    现在看看如果我们将两个集合都转换为因子会发生什么:

    set1 <- as.factor(set1)
    set2 <- as.factor(set2)
    set1
    [1] 6 3 4 5 7 3 5 7 5 7
    Levels: 3 4 5 6 7
    

    你可以看到set1现在变成了相同的数字,但是有一个级别的集合。

    levels(set1)
    [1] "3" "4" "5" "6" "7"
    

    这可以为长时间重复的字符级别节省大量空间,并有助于在统计分析中阐明含义。

    但是,当您尝试在因子和数字表示之间进行转换时,可能会发生令人惊讶的事情:

    as.integer(set1)
     [1] 4 1 2 3 5 1 3 5 3 5
    

    在这种情况下,我们得到了每个元素的因子级别数。

    因此,由于意外结果的风险增加,这不起作用:

    t.test(set1,set2)
    Error in var(x) : Calling var(x) on a factor x is defunct.
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-04-20
      • 2011-09-20
      • 1970-01-01
      • 2013-07-11
      相关资源
      最近更新 更多