Hoi All,
I am trying to append collums to a data frame in a for loop. I read in
tables, do some processing and then write the result to a data.frame. But,
the thing I want is, that the results are appended to the data frame in
stead of overwriting the results of the prevous table.
It has to look something like this:
After going trough the loop once:
Array 1
1
2
3
4
5
After going trough the loop twice:
Array 1 Array 2
1 1
2 2
3 3
4 4
5 5
After going trough the loop three times:
Array 1 Array 2 Array 3
1 1 1
2 2 2
3 3 3
4 4 4
5 5 5
This is my code:
setwd("J:/Stage/Datasets2/Datasets/outData")
masterTable<-read.table("AR1000900A_N_241110_(Mapping250K_Nsp)_2,Mapping250K_Nsp,CNprobes.tab
_SNP_IDs.xls",sep="\t", dec=",", fill=T, header=T)
masterTable<-data.frame(masterTable)
fileNames<-list.files(getwd(), pattern='_0,5 -0,51.xls')
regionMatchABCDE<-data.frame()
for(i in 1:5) {
fileName <- fileNames[i]
newFile <- file.path(getwd(), paste(fileNames[i], "samen_0,5
-0,51.xls"))
snpidFile<-read.table(fileNames[i],sep="\t", dec=",",
fill=T, header=T)
snpidFile<-data.frame(snpidFile)
regionMatch<-cbind(masterTable, masterTable[match(masterTable$Pos,
snpidFile$Pos),])
regionMatchABCDE<-cbind(regionMatch[,10:18])
}
write.table(regionMatchABCDE, file= "Array 0-1-2-3-4-5.xls",
col.names=T,
row.names=F, quote=F, sep = "\t")
Thanks!
--
View this message in context:
http://r.789695.n4.nabble.com/appending-collums-in-for-loop-tp3393445p3393445.html
Sent from the R help mailing list archive at Nabble.com.
Hoi All,
I am trying to append collums to a data frame in a for loop. I read in
tables, do some processing and then write the result to a data.frame. But,
the thing I want is, that the results are appended to the data frame in
stead of overwriting the results of the prevous table.
It has to look something like this:
After going trough the loop once:
Array 1
1
2
3
4
5
After going trough the loop twice:
Array 1 Array 2
1 1
2 2
3 3
4 4
5 5
After going trough the loop three times:
Array 1 Array 2 Array 3
1 1 1
2 2 2
3 3 3
4 4 4
5 5 5
This is my code:
setwd("J:/Stage/Datasets2/Datasets/outData")
masterTable<-read.table("AR1000900A_N_241110_(Mapping250K_Nsp)_2,Mapping250K_Nsp,CNprobes.tab
_SNP_IDs.xls",sep="\t", dec=",", fill=T, header=T)
masterTable<-data.frame(masterTable)
fileNames<-list.files(getwd(), pattern='_0,5 -0,51.xls')
regionMatchABCDE<-data.frame()
for(i in 1:5) {
fileName <- fileNames[i]
newFile <- file.path(getwd(), paste(fileNames[i], "samen_0,5
-0,51.xls"))
snpidFile<-read.table(fileNames[i],sep="\t", dec=",",
fill=T, header=T)
snpidFile<-data.frame(snpidFile)
regionMatch<-cbind(masterTable, masterTable[match(masterTable$Pos,
snpidFile$Pos),])
regionMatchABCDE<-cbind(regionMatch[,10:18])
}
write.table(regionMatchABCDE, file= "Array 0-1-2-3-4-5.xls",
col.names=T,
row.names=F, quote=F, sep = "\t")
Thanks!
--
View this message in context:
http://r.789695.n4.nabble.com/appending-collums-in-for-loop-tp3393446p3393446.html
Sent from the R help mailing list archive at Nabble.com.
I forgot to say I need it to work in a for loop because it will be used for
over 35 files. I previously programmed it in the most unorthodox way
possible:
setwd("J:/Stage/Datasets2/Datasets/outData")
data1<-read.table("AR1000900A_N_241110_(Mapping250K_Nsp)_2,Mapping250K_Nsp,CNprobes.tab
_SNP_IDs.xls",sep="\t", dec=",", fill=T, header=T)
bukuA<-read.table("AR1000900A_N_241110_(Mapping250K_Nsp)_2,Mapping250K_Nsp,CNprobes.tab
_SNP_IDs.xls _0,5 -0,51.xls", sep="\t", dec=",",
fill=T, header=T)
bukuB<-read.table("AR1000901A_N_241110_(Mapping250K_Nsp),Mapping250K_Nsp,CNprobes.tab
_SNP_IDs.xls _0,5 -0,51.xls", sep="\t", dec=",",
fill=T, header=T)
bukuC<-read.table("AR1000902A_N_241110_(Mapping250K_Nsp),Mapping250K_Nsp,CNprobes.tab
_SNP_IDs.xls _0,5 -0,51.xls", sep="\t", dec=",",
fill=T, header=T)
bukuD<-read.table("AR1000903A_N_291110_(Mapping250K_Nsp),Mapping250K_Nsp,CNprobes.tab
_SNP_IDs.xls _0,5 -0,51.xls", sep="\t", dec=",",
fill=T, header=T)
bukuE<-read.table("AR1000904A_N_241110_(Mapping250K_Nsp),Mapping250K_Nsp,CNprobes.tab
_SNP_IDs.xls _0,5 -0,51.xls", sep="\t", dec=",",
fill=T, header=T)
bukuA<-data.frame(bukuA)
bukuB<-data.frame(bukuB)
bukuC<-data.frame(bukuC)
bukuD<-data.frame(bukuD)
bukuE<-data.frame(bukuE)
regionMatchA<-cbind(data1, bukuA[match(data1$Pos, bukuA$Pos),])
regionMatchB<-cbind(data1, bukuB[match(data1$Pos, bukuB$Pos),])
regionMatchC<-cbind(data1, bukuC[match(data1$Pos, bukuC$Pos),])
regionMatchD<-cbind(data1, bukuD[match(data1$Pos, bukuD$Pos),])
regionMatchE<-cbind(data1, bukuE[match(data1$Pos, bukuE$Pos),])
regionMatchABCDE<-cbind(data1[,7],data1[,3],
regionMatchA[,10:18],regionMatchB[,10:18],regionMatchC[,10:18],regionMatchD[,10:18],regionMatchE[,10:18])
write.table(regionMatchABCDE, file= "Array0-1-2-3-4-5_0,5 -0,5.xls",
append=F, col.names=T, row.names=F, quote=F, sep = "\t",
dec=",")
--
View this message in context:
http://r.789695.n4.nabble.com/appending-collums-in-for-loop-tp3393446p3393481.html
Sent from the R help mailing list archive at Nabble.com.
I can't reproduce your work, but I think you just need> regionMatchABCDE[,i] <- cbind(regionMatch[,10:18])instead of regionMatchABCDE <- cbind(regionMatch[,10:18]) within the for loop Scott On Monday, March 21, 2011 at 7:36 AM, Who Am I? wrote: Hoi All,> > I am trying to append collums to a data frame in a for loop. I read in > tables, do some processing and then write the result to a data.frame. But, > the thing I want is, that the results are appended to the data frame in > stead of overwriting the results of the prevous table. > It has to look something like this: > > After going trough the loop once: > Array 1 > 1 > 2 > 3 > 4 > 5 > > After going trough the loop twice: > Array 1 Array 2 > 1 1 > 2 2 > 3 3 > 4 4 > 5 5 > > After going trough the loop three times: > Array 1 Array 2 Array 3 > 1 1 1 > 2 2 2 > 3 3 3 > 4 4 4 > 5 5 5 > > This is my code: > > setwd("J:/Stage/Datasets2/Datasets/outData") > > masterTable<-read.table("AR1000900A_N_241110_(Mapping250K_Nsp)_2,Mapping250K_Nsp,CNprobes.tab > _SNP_IDs.xls",sep="\t", dec=",", fill=T, header=T) > masterTable<-data.frame(masterTable) > > fileNames<-list.files(getwd(), pattern='_0,5 -0,51.xls') > regionMatchABCDE<-data.frame() > > for(i in 1:5) { > fileName <- fileNames[i] > newFile <- file.path(getwd(), paste(fileNames[i], "samen_0,5 > -0,51.xls")) > snpidFile<-read.table(fileNames[i],sep="\t", dec=",", fill=T, header=T) > snpidFile<-data.frame(snpidFile) > regionMatch<-cbind(masterTable, masterTable[match(masterTable$Pos, > snpidFile$Pos),]) > regionMatchABCDE<-cbind(regionMatch[,10:18]) > } > > write.table(regionMatchABCDE, file= "Array 0-1-2-3-4-5.xls", col.names=T, > row.names=F, quote=F, sep = "\t") > > Thanks! > > -- > View this message in context: http://r.789695.n4.nabble.com/appending-collums-in-for-loop-tp3393445p3393445.html > Sent from the R help mailing list archive at Nabble.com. > > ______________________________________________ > R-help@r-project.org mailing list > https://stat.ethz.ch/mailman/listinfo/r-help > PLEASE do read the posting guide http://www.R-project.org/posting-guide.html > and provide commented, minimal, self-contained, reproducible code. >[[alternative HTML version deleted]]