我正在尝试找到一种向我的数据框添加列的方法,该列将两个处理组中的值分类为与控件相似或不同,具体取决于值是否与控件在统计上不同。
我不确定这是否可行,但让我知道我有一些类似的数据
df <- data_frame(species = rep(c("X1", "X2", "X3", "X4"), times = 12),
condition = rep(c("Control", "Treat1", "Treat2"), each = 16),
values = rep(c(rnorm(16, mean = 16, sd = 4),
rnorm(16, mean = 14, sd = 3),
rnorm(16, mean = 5, sd = 10))))
现在我要添加一个列。 我正在考虑使用像
这样的东西df2 <- df %>%
group_by(species) %>%
mutate(new_column = ifelse("Value of each condition statistically different from Control", "Different", "Same")
那么,有没有办法在ifelse语句中应用统计测试?
或者我应该更好地使用一些更简单的标准来对数据进行分类。也许将控制的±1标准分区内的所有值分类为“相同”?
感谢您的帮助和意见。 我期待着阅读你的回复和建议。
答案 0 :(得分:1)
您想要研究&#34; t-tests&#34;以及他们的各种假设。这些用于确定来自正态分布的两个样本是否具有相同的均值。 R中的默认值是假设方差不相等,这对模拟集合有利。
我将跳过数据争论
> set.seed(1)
> control <- rnorm(16, mean = 16, sd = 4)
> treat1 <- rnorm(16, mean = 14, sd = 3)
> treat2 <- rnorm(16, mean = 5, sd = 10)
> lapply(list(treat1,treat2), function(t) t.test(t,control)$p.value < 0.05)
[[1]]
[1] FALSE
[[2]]
[1] TRUE
因此,对于这个模拟的数据集,t检验不区分治疗1和5%显着性水平的对照。对于不同的样本,它可能会对更大的样本更有可能。