给定一个矩阵m,如何对行/变量进行t.test (测试平均值是否与零不同),并得到一个矩阵,其中每列对应于例如,行的t.test$statistic和t.test$p.value。由于某些行有几个NAs,所以我同时希望确保t.test不会因此失败;因此,在本例中,生成矩阵的行在t.test$statistic和t.test$p.value列中都是NA。我想出了如下所示的东西,但我做不到。最后,我需要在一个矩阵列表上这样做,但是如果我能够在一个矩阵上完成它,我就可以在矩阵列表上使用lapply。谢谢!
res <- apply(m, 1, function(x) {
u <- mat
我有6列数字数据的dataframe。我想对表单中的列对运行t测试;第一+第二列,third+fourth列,第五+第六列,直到我有3个t-test p值,我可以将它们存储在新的数据帧中。 我知道我可以使用select()获得列,并且可以使用t.test(x,y)$p.values提取p值。但是我想不出在for循环中实现自动化的好方法。 我想做这样的事情: p-values <- for (i in select(dataframe,-1) t.test(i,?)$p.value 作为一个开始,但不确定从哪里开始。
很明显,我仍然不理解plyr语法,如下所示。有人能帮我看看我错过了什么吗?
正如预期的那样,下面的代码运行良好:
# make a data frame to use dlply on
f <- as.factor(c(rep("a", 3), rep("b", 3)))
y <- rnorm(6)
df <- data.frame(f=f, y=y)
# split the data frame by the factor and perform t-tests
l <- dlply(df, .(f), function(d) t.
我很难用不成对的t检验和聚合函数。
示例
dd<-data.frame(names=c("1st","1st","1st","1st","2nd","2nd","2nd","2nd"),a=c(11,12,13,14,2.1,2.2,2.3,2.4),b=c(3.1,3.2,3.3,3.4,3.1,3.2,3.3,3.4))
dd
# Compare all the values in the "a" column that match wit
我做了这个t.test (在本例中,我将使用iris数据集):
> t.test(iris$Sepal.Length, iris$Sepal.Width)
Welch Two Sample t-test
data: iris$Sepal.Length and iris$Sepal.Width
t = 36.463, df = 225.68, p-value < 2.2e-16
alternative hypothesis: true difference in means is not equal to 0
95 percent confidence interval
我有一个很大的数据框架,其中一列显示了被访者来自哪个省份。我希望看到来自各省的受访者在一些栏目中的价值观差异,根据栏目名称(如希望栏、责任栏、效能栏)。
Province Hope Responsibility Efficacy Age
A 4 3 2 24
A 2 1 4 23
C 5 3 5 20
B 3 2 3 29
我有一个来自interlab研究的数据框架,如下所示
本质上是lab=Laboratory、mat=material、fab=strength、thick=thickness
我想要t.test的数据来比较每个实验室的每种材料。
也就是说,对于mat=v,我想运行t.test来比较实验B和实验S。
材料c,n和l也是如此。
由于我不知道如何有效地完成这项工作,所以我使用intaraction函数创建了一个列(我知道一定有更简单的方法!)然后对我感兴趣的每个组合运行t.tests。
# create a new column with lab/mat factors combined
inter
我尝试使用na.rm= True,但仍然是相同的错误。我在3个集群上运行了下面的代码段,但我只能看到第一个集群的t测试结果。A,B是具有foll列的dataframe : ID、列、列b、集群。我想对列和列做配对t检验。
for (i in 1:n){
print (paste ("cluster",i,sep="_"))
A<-A[A$cluster==i,]
print(t.test(A$columna,A$columnb,paired=True,na.rm=T))
B<-B[B$cluster==i,]
我正在读哈德利韦翰的书高级R,特别是面向对象的指南()。该章的第一个练习如下:
阅读t()和t.test()的源代码,确认t.test()是S3泛型,而不是S3方法。如果使用类测试创建一个对象并使用它调用t(),会发生什么情况?
如果我正确理解了这一章,我们就可以确认t()和t.test()是通用的,因为它们在源代码中使用了UseMethod()函数。方法(T)返回t.data.frame、t.default和t.ts*作为函数t()的方法。那么,如果两者都是S3泛型,并且t没有t.test方法,那么下面的代码会返回t测试吗?
a <- structure(1:4, class =
我一直在尝试在R中运行一个两边t-test,但总是出错。下面是我来自R-studio的流程、数据集详细信息和脚本。我使用了一个名为LungCapacity的数据集,它是我从网站下载的。
#Imported data set into RStudio.
# Ran a summary report to see the data and class.
summary(LungCapData)
# Here I could see that the smoke column is a character, so I converted it to a factor
LungCapacityDa
在本练习中,我将查看数据集iris。我想做的是在第一列和第二列、第三列和第四列之间运行t-test。所以最后我们有4个结果,t.test(c1, c2),t.test (c1, c3),t.test(c1, c4),t.test(c1, c5)。这是我到目前为止所掌握的。我得到了一些值,但我不确定它是否是正确的。
result <- vector("list", 4)
for (i in 1:4) {
x = iris[ , 1]
y = iris[ , i + 1]
result[i] = t.test(x, y)$p.value
}