Hi Balpo, Try this:
# data x <- read.table(textConnection("ktot attractors pctstatesinattractors t lengths 1.0 2.0 3.8146973E-4 17 c(2,2) 1.0 1.0 5.722046E-4 28 c(2) 1.0 2.0 9.536743E-4 18 c(2,2) 1.0 1.0 0.0010490417 14 c(1)"), header = TRUE) closeAllConnections() # function to do the parse()ing foo <- function(x) eval(parse(text=x)) # processing x$mymean <- sapply(with(x, sapply(lengths, foo)), mean, na.rm = TRUE) x HTH, Jorge On Fri, Oct 22, 2010 at 10:19 PM, Balpo <> wrote: > Hello again Jim (and everyone) > I am having a weird problem here with the same parsing thing. > For example, for the first row I have the following 5 columns. > > 1.0 2.0 3.8146973E-4 17 c(2,2) > > I need to convert that c(2,2) into a list and get its mean, in this > particular case mean=2. My program does: > > t1 <- read.table(file="file.dat", header=T, colClasses=c("numeric", > "numeric", "numeric", "numeric", "factor")) > t1$lengthz <- lapply(t1$lengths, function(a) eval(parse(text=a)))#As Jim > thought me > t1$avglen <- as.vector(mode="numeric", lapply(t1$lengthz, function(i) > mean(i))) > > but the 6th column is strangely getting 780 instead of 2. > This solution used to work! :-( > Do you have any idea about what is going on? > > I attach file.dat. > > Thank you for your support. > > Balpo > > > On 19/07/10 16:38, Balpo wrote: > >> Thank you a lot, Jim. >> Issue solved. >> >> Balpo >> >> On 16/07/10 11:27, jim holtman wrote: >> >>> Here is a way of creating a separate list of variable length vectors >>> that you can use in your processing: >>> >>> # read into a dataframe >>>> x<- read.table(textConnection("A B C T Lengths >>>> >>> + 1 4.0 0.0015258789 18 c(1,2,3) >>> + 1 4.0 0.0015258789 18 c(1,2,6,7,8,3) >>> + 1 4.0 0.0015258789 18 c(1,2,3,1,2,3,4,5,6,7,9) >>> + 1 4.0 0.0015258789 18 c(1,2,3) >>> + 1 1.0 0.0017166138 24 c(1,1,4)"), header=TRUE) >>> >>>> # create a 'list' with the variable length vectors >>>> # assuming the the "Lengths" are legal R expressions using 'c' >>>> x$varList<- lapply(x$Lengths, function(a) eval(parse(text=a))) >>>> >>>> x >>>> >>> A B C T Lengths >>> varList >>> 1 1 4 0.001525879 18 c(1,2,3) 1, >>> 2, 3 >>> 2 1 4 0.001525879 18 c(1,2,6,7,8,3) 1, 2, 6, 7, >>> 8, 3 >>> 3 1 4 0.001525879 18 c(1,2,3,1,2,3,4,5,6,7,9) 1, 2, 3, 1, 2, 3, 4, 5, 6, >>> 7, 9 >>> 4 1 4 0.001525879 18 c(1,2,3) 1, >>> 2, 3 >>> 5 1 1 0.001716614 24 c(1,1,4) 1, >>> 1, 4 >>> >>>> str(x) >>>> >>> 'data.frame': 5 obs. of 6 variables: >>> $ A : int 1 1 1 1 1 >>> $ B : num 4 4 4 4 1 >>> $ C : num 0.00153 0.00153 0.00153 0.00153 0.00172 >>> $ T : int 18 18 18 18 24 >>> $ Lengths: Factor w/ 4 levels "c(1,1,4)","c(1,2,3)",..: 2 4 3 2 1 >>> $ varList:List of 5 >>> ..$ : num 1 2 3 >>> ..$ : num 1 2 6 7 8 3 >>> ..$ : num 1 2 3 1 2 3 4 5 6 7 ... >>> ..$ : num 1 2 3 >>> ..$ : num 1 1 4 >>> On Fri, Jul 16, 2010 at 10:51 AM, Balpo<> wrote: >>> >>>> Hello to all! >>>> I am new with R and I need your help. >>>> I'm trying to read a file which contests are similar to this: >>>> A B C T Lengths >>>> 1 4.0 0.0015258789 18 c(1,2,3) >>>> 1 1.0 0.0017166138 24 c(1,1,4) >>>> >>>> So all the columns are numeric values, except Lengths, which is supposed >>>> to >>>> be an variable length array of integers. >>>> How can I make R read them as arrays of integers? Or otherwise, convert >>>> the >>>> character array to an array of integers. >>>> When I read the file, I do it like this >>>> t1 = read.table(file=paste("./borrar.dat",sep=""), header=T, >>>> colClasses=c("numeric", "numeric", "numeric", "numeric", "array")) >>>> But the 5th column is treated as an array of characters, and when trying >>>> to >>>> convert it to another class of data, I either >>>> get two strings "c(1,2,3)" and "c(1,1,4)" or using a toRaw converter, I >>>> get >>>> the corresponding ASCII ¿? values. >>>> Should the input be modified in order to be able to read it as an array >>>> of >>>> integers? >>>> >>>> Thank you for your help. >>>> Balpo >>>> >>>> ______________________________________________ >>>> 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. >>>> >>>> >>> >>> >> ______________________________________________ >> 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. >> >> > ______________________________________________ > 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]]
______________________________________________ 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.