【问题标题】:Error using t.test() in R - not enough 'x' observations在 R 中使用 t.test() 时出错 - 'x' 观察值不足
【发布时间】:2018-05-27 20:56:48
【问题描述】:

我尝试进行 t.test,但它给了我这样的错误。
在 R 中使用 t.test() 时出错

没有足够的“x”观察

数据只有数值,没有NA。 组的比例是 10 比 35。如何规避?在此先感谢您的帮助!

t.test(data$Vrajdeb[data$a=="1"],data$Vrajdeb[data$a=="2"])

引用数据https://1drv.ms/x/s!ApJwAUaohJFdr1ID-QebKTmE_o3K

【问题讨论】:

  • 请提供样本数据。你可以在这里找到一个例子:stackoverflow.com/questions/5963269/…
  • 这是您仅通过 1 次观察得到的错误,t.test 适用于长度等于或大于 2 的向量。 length(data$Vrajdeb[data$a=="1"]) 的输出是什么?
  • 长度(data$Vrajdeb[data$a=="1"]) [1] 0
  • 我认为您的数据存在一些编码问题:a 并不是真正的a
  • yup 文件以 Unicode 格式导入第一列: 表示字符“a”,为列“a”使用索引 1 或将其重命名为 colnames(data)[1] <- 'a'

标签: r statistics p-value


【解决方案1】:

您有足够的观察结果,但无法根据“a”列对数据进行子集化。这是由于您的数据以 Unicode 的第一列名称导入:<U+430> 用于字符“a”,对列“a”使用索引 1 或将其重命名为

colnames(data)[1] <- 'a'

然后运行 ​​t 检验。

【讨论】:

  • 不客气。如果对您有用,请按您喜欢的方式投票/接受答案。
【解决方案2】:

这是一种方法。请注意,当我加载您的数据时,标记为a 的列会显示为X.:

library(dplyr)
library(broom)
> data
# A tibble: 45 x 25
      X. Cinizm Agres Vrajdeb Zavisim Motiv Stimul  Igra Rasslab Podderjka_1
   <int>  <int> <int>   <int>   <int> <int>  <int> <int>   <int>       <int>
 1     1     33    22      17       1     7      6     7      13          15
 2     1     54    38      24       3     8     13     4      13           8
 3     1     44    35      21       6     8     11    10      14           6
...

> data %>% do(tidy(t.test(Vrajdeb~X., data=.)))
   estimate estimate1 estimate2  statistic   p.value parameter  conf.low 
conf.high  method alternative
1 -1.728571      17.3  19.02857 -0.8999865 0.3819658  15.42225 -5.812628  
2.355486 Welch Two Sample t-test   two.sided

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2013-03-17
    • 2019-08-06
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-01-27
    • 2017-11-03
    • 1970-01-01
    相关资源
    最近更新 更多