R:在数据帧或矩阵中使用t.test函数
我想使用t.test函数来比较数据帧中存储的值组。假设我的数据框架有两列:“组”和“结果”以及40行。“结果”列包含我要比较的值,“组”列表示值被划分的组:例如,4个组(a、b、c、d),每组10个值 我如何表明我只想测试属于a组的值与属于b组的值 或者,是否有一种简单的方法将属于a组的值提取到向量(我们称之为“vecta”)中,以便随意比较向量 提前谢谢! Seb您问:“我如何表明我只想测试属于a组的值和属于b组的值?” 假设您的数据帧被称为R:在数据帧或矩阵中使用t.test函数,r,dataframe,R,Dataframe,我想使用t.test函数来比较数据帧中存储的值组。假设我的数据框架有两列:“组”和“结果”以及40行。“结果”列包含我要比较的值,“组”列表示值被划分的组:例如,4个组(a、b、c、d),每组10个值 我如何表明我只想测试属于a组的值与属于b组的值 或者,是否有一种简单的方法将属于a组的值提取到向量(我们称之为“vecta”)中,以便随意比较向量 提前谢谢! Seb您问:“我如何表明我只想测试属于a组的值和属于b组的值?” 假设您的数据帧被称为df。要将a组与b组进行t检验比较,您可以使用例如:
df
。要将a组与b组进行t检验比较,您可以使用例如:
t.test(df$result[df$group=="a"], df$result[df$group=="b"])
# or
with(df, t.test(result[group=="a"], result[group=="b"]))
# or, fo rexample
t.test(result~group, data=subset(df, group %in% c("a", "b")))
所有方法都应该有效,但未经测试,因为您没有发布任何示例数据:p
或者,是否有一种简单的方法将属于a组的值提取到向量(我们称之为“vecta”)中,以便随意比较向量
对
在
t.test
“帮助”的末尾有一个关于您的情况的示例:
## Classical example: Student's sleep data
plot(extra ~ group, data = sleep)
## Traditional interface
with(sleep, t.test(extra[group == 1], extra[group == 2]))
## Formula interface
t.test(extra ~ group, data = sleep)
第二种形式(公式界面)在有两个组时最简单;你有4个
一种方法是
至于提取组指示符采用特定值的值,上述帮助中的第一种形式给出了提取方法(在您的案例中,使用(yourdata,result[group==“a”])
只会给出组a的结果)。以下不是“随意”的,而是自动计算所有组对“组”变量
以下是一些示例数据:
mydf <- data.frame(
group = rep(letters[1:4], each = 10),
result = c(1:10, 5:14, 11:20, 15:24)
)
mydf
至于提取单独的向量,我认为向量的列表
可能更方便,您可以使用拆分
:
x <- split(mydf$result, mydf$group)
x欢迎来到Stack Overflow。发布一些示例数据,你很可能会惊讶于有人能够以更快的速度回答你认为有用的答案。你可以找到一些提示来完成Ananda刚才说的+1。一个建议:我将使用group%in%“a“
而不是=
,以避免选择具有NA组值的记录。例如:group@MattParker+1这是一个很好的观点(尽管NAs不会影响这里的示例)。我之所以选择==
是为了鼓励使用“帮助”中示例中的信息,这就是相关示例在?t.test
下的实现方式谢谢,这正是我整个下午一直在寻找的:)
mydf <- data.frame(
group = rep(letters[1:4], each = 10),
result = c(1:10, 5:14, 11:20, 15:24)
)
mydf
combn(as.character(unique(mydf$group)), 2,
FUN = function(y) t.test(result ~ group,
mydf[mydf$group %in% y ,]),
simplify = FALSE)
x <- split(mydf$result, mydf$group)
with(subset(df, group %in% c("a", "b")),
t.test(value ~ factor(group))
#
# df - your data.frame
#