使用mutate在R中的数据帧中进行t测试
我正在努力计算R中数据框中两组之间的t检验。下面的示例代码生成一个包含两列的数据框:变量和值。有两个变量:M和F使用mutate在R中的数据帧中进行t测试,r,R,我正在努力计算R中数据框中两组之间的t检验。下面的示例代码生成一个包含两列的数据框:变量和值。有两个变量:M和F data <- data.frame(variable = c("M", "F", "F"), value = c(10,5,6)) 我需要证明M和F的值在统计学上是不同的。换句话说,10在统计上不同于5和6的平均值。我需要在此数据框中添加另一列,显示p值。当我运行下面的代码时,会出现以下错误: result <- data %>% mutate(newcolum
data <- data.frame(variable = c("M", "F", "F"), value = c(10,5,6))
我需要证明M和F的值在统计学上是不同的。换句话说,10在统计上不同于5和6的平均值。我需要在此数据框中添加另一列,显示p值。当我运行下面的代码时,会出现以下错误:
result <- data %>% mutate(newcolumn = t.test(value~variable))
t.test.defaultx=c5,6,y=10中的错误:
没有足够的“y”观察我不理解这个问题 测试本身可以作为平均值的单样本t测试。是的
t.test(x = c(5, 6) - 10)
如果要测试运行包dplyr管道:
Hi@xilliam我添加了代码以生成一个小样本数据集错误告诉您它无法进行t测试,因为您没有足够的值。当其中一个组只有一个值时,t检验在数学上是不可能的。谢谢@IceCreamToucan,,是的,我想是的。对不起,我的概念在这里有点弱。最初我认为一个组中的一个值可以与其他值的平均值进行比较。你能进一步解释为什么不可能吗?提前多谢!
library(dplyr)
fun_t_test <- function(x){
tryCatch(t.test(x)$p.value, error = function(e) NA)
}
data %>%
mutate(newvalue = value - mean(value[variable == "M"])) %>%
group_by(variable) %>%
summarise(p.value = fun_t_test(newvalue))
## A tibble: 2 x 2
# variable p.value
# <fct> <dbl>
#1 F 0.0704
#2 M NA