[R] Reading a specific column of a csv file in a loop

Jan van der Laan rhelp at eoos.dds.nl
Tue Nov 15 21:06:57 CET 2011


Yet another solution. This time using the LaF package:

library(LaF)
d<-c(1,4,7,8)
P1 <- laf_open_csv("M1.csv", column_types=rep("double", 10), skip=1)
P2 <- laf_open_csv("M2.csv", column_types=rep("double", 10), skip=1)
for (i in d) {
   M<-data.frame(P1[, i],P2[, i])
}

(The skip=1 is needed as laf_open_csv doesn't read headers)

Jan



On 11/08/2011 11:04 AM, Sergio René Araujo Enciso wrote:
> Dear all:
>
> I have two larges files with 2000 columns. For each file I am
> performing a loop to extract the "i"th element of each file and create
> a data frame with both "i"th elements in order to perform further
> analysis. I am not extracting all the "i"th elements but only certain
> which I am indicating on a vector called "d".
>
> See  an example of my  code below
>
> ### generate an example for the CSV files, the original files contain
> more than 2000 columns, here for the sake of simplicity they have only
> 10 columns
> M1<-matrix(rnorm(1000), nrow=100, ncol=10,
> dimnames=list(seq(1:100),letters[1:10]))
> M2<-matrix(rnorm(1000), nrow=100, ncol=10,
> dimnames=list(seq(1:100),letters[1:10]))
> write.table(M1, file="M1.csv", sep=",")
> write.table(M2, file="M2.csv", sep=",")
>
> ### the vector containing the "i" elements to be read
> d<-c(1,4,7,8)
> P1<-read.table("M1.csv", header=TRUE)
> P2<-read.table("M1.csv", header=TRUE)
> for (i in d) {
> M<-data.frame(P1[i],P2[i])
> rm(list=setdiff(ls(),"d"))
> }
>
> As the files are quite large, I want to include "read.table" within
> the loop so as it only read the "i"th element. I know that there is
> the option "colClasses" for which I have to create a vector with zeros
> for all the columns I do not want to load. Nonetheless I have no idea
> how to make this vector to change in the loop, so as the only element
> with no zeros is the "i"th element following the vector "d". Any ideas
> how to do this? Or is there anz other approach to load only an
> specific element?
>
> best regards,
>
> Sergio René
>
> ______________________________________________
> R-help at 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.



More information about the R-help mailing list