我英语不好,对此感到抱歉;)
我目前正在对r编程。
我在R上的数据框(名为data.frame)中有很多列。
该列的名称为1A,1B,2A,2B,3A,3B ....
我想对每列(1A与1B)进行t检验,...
我的命令是
t.test(data.frame$`1A`,data.frame$`1B`, paired=T,alternative="two.sided")
我考虑过使用命令for(i在1:100中),并在列名中使用变量i,但是我不知道如何将变量放入列名中(我尝试过数据。 frame $ i'A'和其他东西,没用...)
如果您有任何想法,我会接受;)
非常感谢
答案 0 :(得分:0)
尝试:
for (i in 1:X){
t<-t.test(data[,paste(i,"A",sep="")],data[,paste(i,"B",sep="")],
paired=T,alternative="two.sided")
print(t)
}
(我更改了数据中data.frame的名称,所以没有人感到困惑)
答案 1 :(得分:0)
尝试一下
#Create sample dataset
`1A`<-sample(1:1000, 1000)
`1B`<-sample(1:1000, 1000)
`2A`<-sample(1:1000, 1000)
`2B`<-sample(1:1000, 1000)
table1<-data.frame(`1A`,`1B`,`2A`,`2B`)
#Generate nested do loop for all compinations of pairs
for (i in 1:ncol(table1)) {
for (j in 1:ncol(table1)) {
txt=paste0("t.test(table1$",names(table1[i]),",table1$",names(table1[j]),",paired=T,alternative='two.sided')")
t<-eval(parse(text = txt))
print(t)
}
}
答案 2 :(得分:0)
非常感谢您的帮助!
我主要使用了Martin方法:这对我有用:
for(i in 1:(ncol(data.frame)/2)){
a<-data.frame[,paste(i,"A",sep="")]
#the problem was the creation each time of a new data.frame (witch was a, with one colomn, the good one, bur the colomn name didnt change.... i rename it
names(a)[1]<-"A"
b<-data.frame[,paste(i,"B",sep="")]
names(b)[1]<-"B"
t.test(a$'A',b$`B`, paired=T,alternative="two.sided")
}
非常感谢!