Try this: read.table(textConnection(gsub("([0-9]+)", ";\\1;", x)), sep = ";")
On Tue, Sep 8, 2009 at 9:52 AM, Lauri Nikkinen <lauri.nikki...@iki.fi>wrote: > Thanks Petr, I tried something like this > > > con <- file("C:temppi.txt", "r", blocking = FALSE) > > g <- readLines(con) > > close(con) > > > > sta <- c(1, 3, 5, 19) > > sto <- c(2, 4, 18, 100) > > do.call("rbind", lapply(g, function(x) substring(x, sta, sto))) > [,1] [,2] [,3] [,4] > [1,] "DF" "12" " This is an ex" "ample 1 This" > [2,] "DF" "12" " This is an 12" "32 This is" > [3,] "DF" "14" " This is 12334" " This is an " > [4,] "DF" "15" " This 23 This " "is an example" > > > > But this is not the solution I was looking for. Thanks. > > -L > > 2009/9/8 Petr PIKAL <petr.pi...@precheza.cz>: > > Hi > > > > what about reading each line by readLine and then split it to desired > > portions? > > > > x<-paste(letters, collapse="") > > substring(x, c(1,3,5),c(2,4,15)) > > > > Regards > > Petr > > > > > > r-help-boun...@r-project.org napsal dne 08.09.2009 14:21:53: > > > >> This data is from database and the maximum length of a field is > >> defined. I mean that every column has a maximum length and I want to > >> use this maximum length as a separator. So if one "cell" in that > >> column is shorter than the maximum, "cell" should be padded with white > >> spaces or something like that. This seems to be hard to explain. > >> > >> Regards, > >> L > >> > >> 2009/9/8 Duncan Murdoch <murd...@stats.uwo.ca>: > >> > On 9/8/2009 8:07 AM, Lauri Nikkinen wrote: > >> >> > >> >> Thanks, I tried it but I got > >> >> > >> >>> varlength <- c(2, 2, 18, 5, 18) > >> >>> read.fwf("c:temppi.txt", widths=varlength) > >> >> > >> >> V1 V2 V3 V4 V5 > >> >> 1 DF 12 This is an exampl e 1 T his > >> >> 2 DF 12 This is an 1232 T his i s > >> >> 3 DF 14 This is 12334 Thi s is an > >> >> 4 DF 15 This 23 This is a n exa mple > >> >> > >> >> Which is not the way I want it. > >> > > >> > It looks as though that's because you don't have fixed width data. " > > This > >> > is an example" is 19 chars, including the leading space. You told R > > it was > >> > 18. " This is an " is only 12 characters. > >> > > >> > I would say you have two fixed width fields, and three varying fields, > > with > >> > no delimiters. If the middle one of the three always contains digits > > and > >> > the others don't, you can probably extract them using sub(), but you > > can't > >> > use any of the read.* functions to do this: your format is too > > strange. > >> > > >> > Duncan Murdoch > >> > > >> >> > >> >> structure(list(V1 = structure(c(1L, 1L, 1L, 1L), .Label = "DF", class > >> >> = "factor"), > >> >> V2 = c(12L, 12L, 14L, 15L), V3 = structure(c(4L, 3L, 2L, > >> >> 1L), .Label = c(" This 23 This is a", " This is 12334 Thi", > >> >> " This is an 1232 T", " This is an exampl"), class = "factor"), > >> >> V4 = structure(c(1L, 2L, 4L, 3L), .Label = c("e 1 T", "his i", > >> >> "n exa", "s is "), class = "factor"), V5 = structure(c(2L, > >> >> 4L, 1L, 3L), .Label = c("an ", "his", "mple", "s"), class = > >> >> "factor")), .Names = c("V1", > >> >> "V2", "V3", "V4", "V5"), class = "data.frame", row.names = c(NA, > >> >> -4L)) > >> >> > >> >> Any ideas? > >> >> -L > >> >> > >> >> 2009/9/8 Duncan Murdoch <murd...@stats.uwo.ca>: > >> >>> > >> >>> On 9/8/2009 7:53 AM, Lauri Nikkinen wrote: > >> >>>> > >> >>>> I have a text file similar to this (separated by spaces): > >> >>>> > >> >>>> x <- "DF12 This is an example 1 This > >> >>>> DF12 This is an 1232 This is > >> >>>> DF14 This is 12334 This is an > >> >>>> DF15 This 23 This is an example > >> >>>> " > >> >>>> > >> >>>> and I know the field lengths of each variable (there is 5 variables > > in > >> >>>> this data set), which are: > >> >>>> > >> >>>> varlength <- c(2, 2, 18, 5, 18) > >> >>>> > >> >>>> How can I import this kind of data into R, using the varlength > >> >>>> variable as an field separator indicator? > >> >>> > >> >>> See ?read.fwf. > >> >>> > >> >>> Duncan Murdoch > >> >>> > >> > > >> > > >> > >> ______________________________________________ > >> 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. > -- Henrique Dallazuanna Curitiba-Paraná-Brasil 25° 25' 40" S 49° 16' 22" O [[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.