[R] multiple csv files for T-test
arun
smartpink111 at yahoo.com
Thu Jun 27 19:47:56 CEST 2013
Hi,
I used as.data.frame(matrix(...)) just to create an example dataset. In your case, you don't need to do that. Using the same example:
set.seed(24)
dat1<- as.data.frame(matrix(sample(20:40,40,replace=TRUE),ncol=4))
set.seed(285)
dat2<- as.data.frame(matrix(sample(35:60,40,replace=TRUE),ncol=4))
write.csv(dat1,"file1.csv",row.names=FALSE)
write.csv(dat2,"file2.csv",row.names=FALSE)
data1<- read.csv("file1.csv")
data2<- read.csv("file2.csv")
###Your code:
dat1New<- as.data.frame(matrix(data1))
dat2New<- as.data.frame(matrix(data2))
###It is always useful to check ?str()
str(dat1New)
#'data.frame': 4 obs. of 1 variable:
# $ V1:List of 4
# ..$ : int 26 24 34 30 33 39 25 36 36 25
#..$ : int 32 27 34 34 26 38 24 20 30 22
# ..$ : int 21 31 35 22 24 34 21 32 33 20
#..$ : int 26 25 27 23 39 24 35 33 34 40
dat1New
# V1
#1 26, 24, 34, 30, 33, 39, 25, 36, 36, 25
#2 32, 27, 34, 34, 26, 38, 24, 20, 30, 22
#3 21, 31, 35, 22, 24, 34, 21, 32, 33, 20
#4 26, 25, 27, 23, 39, 24, 35, 33, 34, 40
dat2New
# V1
#1 53, 40, 47, 57, 57, 53, 35, 42, 53, 41
#2 54, 37, 43, 40, 57, 42, 37, 53, 60, 39
#3 54, 60, 46, 50, 35, 41, 58, 45, 36, 53
#4 52, 56, 44, 40, 38, 53, 47, 46, 60, 50
sapply(colnames(dat1New),function(i) t.test(dat1New[,i],dat2New[,i],paired=TRUE)$p.value)
#Error in x - y : non-numeric argument to binary operator
##Just using data1 and data2
sapply(colnames(data1),function(i) t.test(data1[,i],data2[,i],paired=TRUE)$p.value)
# V1 V2 V3 V4
#3.202629e-05 6.510644e-04 6.215225e-04 3.044760e-04
#or using dat1New and dat2New
sapply(seq_along(dat1New$V1),function(i) t.test(dat1New$V1[[i]],dat2New$V1[[i]],paired=TRUE)$p.value)
#[1] 3.202629e-05 6.510644e-04 6.215225e-04 3.044760e-04
A.K.
thanks for the reply, I am getting the following error
Error in x - y : non-numeric argument to binary operator
This is what I enter below
> data1 <-read.csv("file1.csv")
> data2 <-read.csv("file2.csv")
> dat1<- as.data.frame(matrix(data1))
> dat2<- as.data.frame(matrix(data2))
> sapply(colnames(dat1),function(i) t.test(dat1[,i],dat2[,i],paired=TRUE)$p.value)
As far as I can see all my values are numeric...?
----- Original Message -----
From: arun <smartpink111 at yahoo.com>
To: R help <r-help at r-project.org>
Cc:
Sent: Thursday, June 27, 2013 10:17 AM
Subject: Re: multiple csv files for T-test
Hi,
May be this helps:
#You can use ?read.csv() to read the two files.
set.seed(24)
dat1<- as.data.frame(matrix(sample(20:40,40,replace=TRUE),ncol=4))
set.seed(285)
dat2<- as.data.frame(matrix(sample(35:60,40,replace=TRUE),ncol=4))
sapply(colnames(dat1),function(i) t.test(dat1[,i],dat2[,i],paired=TRUE)$p.value)
# V1 V2 V3 V4
#3.202629e-05 6.510644e-04 6.215225e-04 3.044760e-04
A.K.
Hi
I am fairly new to R so if this is a stupid question please forgive me.
I have a CSV file with multiple parameters (50). I have another
CSV file with the same parameters after treatment. Is there a way I
can read these two files into R and do multiple paired T-test as all the
parameters are in the same columns in each file?
Thanks in advance
More information about the R-help
mailing list