Hello,
I try to open a text file test.txt with the content
* a b d
* z u i h hh
* h bh kk
so that I get a list with each line as a vector with the letters as
elements of the the vector.
My approach ...
test <- scan ("test.txt", what="character",
sep="\n")
Read 3 items> test.list <- lapply (test, function (x) {a <- unlist
(strsplit(x," ")); a
<- a[-1]})> test.list
[[1]]
[1] "a" "b" "d"
[[2]]
[1] "z" "u" "i" "h" "hh"
[[3]]
[1] "h" "bh" "kk"
... the result is okay but I dont think it is an elegant solution. One
comment: I dont know how many lines my "real" test.txt will have.
Thanks Hermann
[[alternative HTML version deleted]]
Hi Hermann,
This isn't much more elegant, but
test.list<-sapply(test,function(x) { strsplit(x," ")
},simplify=TRUE)
names(test.list)<-NULL
Jim
On 4/15/15, Hermann Norpois <hnorpois at gmail.com>
wrote:> Hello,
>
> I try to open a text file test.txt with the content
>
> * a b d
> * z u i h hh
> * h bh kk
>
> so that I get a list with each line as a vector with the letters as
> elements of the the vector.
>
> My approach ...
> test <- scan ("test.txt", what="character",
sep="\n")
> Read 3 items
>> test.list <- lapply (test, function (x) {a <- unlist
(strsplit(x," ")); a
> <- a[-1]})
>> test.list
> [[1]]
> [1] "a" "b" "d"
>
> [[2]]
> [1] "z" "u" "i" "h"
"hh"
>
> [[3]]
> [1] "h" "bh" "kk"
>
> ... the result is okay but I dont think it is an elegant solution. One
> comment: I dont know how many lines my "real" test.txt will have.
> Thanks Hermann
>
> [[alternative HTML version deleted]]
>
> ______________________________________________
> R-help at r-project.org mailing list -- To UNSUBSCRIBE and more, see
> 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.
>
> strsplit(x=sub(pattern="^\\* ", replacement="", x=test), split=" ")[[1]] [1] "a" "b" "d" [[2]] [1] "z" "u" "i" "h" "hh" [[3]] [1] "h" "bh" "kk" Bill Dunlap TIBCO Software wdunlap tibco.com On Tue, Apr 14, 2015 at 2:34 PM, Hermann Norpois <hnorpois at gmail.com> wrote:> Hello, > > I try to open a text file test.txt with the content > > * a b d > * z u i h hh > * h bh kk > > so that I get a list with each line as a vector with the letters as > elements of the the vector. > > My approach ... > test <- scan ("test.txt", what="character", sep="\n") > Read 3 items > > test.list <- lapply (test, function (x) {a <- unlist (strsplit(x," ")); a > <- a[-1]}) > > test.list > [[1]] > [1] "a" "b" "d" > > [[2]] > [1] "z" "u" "i" "h" "hh" > > [[3]] > [1] "h" "bh" "kk" > > ... the result is okay but I dont think it is an elegant solution. One > comment: I dont know how many lines my "real" test.txt will have. > Thanks Hermann > > [[alternative HTML version deleted]] > > ______________________________________________ > R-help at r-project.org mailing list -- To UNSUBSCRIBE and more, see > 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]]
Thanks. Actually, I thought there was a way to do it with scan only ... 2015-04-15 16:40 GMT+02:00 William Dunlap <wdunlap at tibco.com>:> > strsplit(x=sub(pattern="^\\* ", replacement="", x=test), split=" ") > [[1]] > [1] "a" "b" "d" > > [[2]] > [1] "z" "u" "i" "h" "hh" > > [[3]] > [1] "h" "bh" "kk" > > > Bill Dunlap > TIBCO Software > wdunlap tibco.com > > On Tue, Apr 14, 2015 at 2:34 PM, Hermann Norpois <hnorpois at gmail.com> > wrote: > >> Hello, >> >> I try to open a text file test.txt with the content >> >> * a b d >> * z u i h hh >> * h bh kk >> >> so that I get a list with each line as a vector with the letters as >> elements of the the vector. >> >> My approach ... >> test <- scan ("test.txt", what="character", sep="\n") >> Read 3 items >> > test.list <- lapply (test, function (x) {a <- unlist (strsplit(x," ")); >> a >> <- a[-1]}) >> > test.list >> [[1]] >> [1] "a" "b" "d" >> >> [[2]] >> [1] "z" "u" "i" "h" "hh" >> >> [[3]] >> [1] "h" "bh" "kk" >> >> ... the result is okay but I dont think it is an elegant solution. One >> comment: I dont know how many lines my "real" test.txt will have. >> Thanks Hermann >> >> [[alternative HTML version deleted]] >> >> ______________________________________________ >> R-help at r-project.org mailing list -- To UNSUBSCRIBE and more, see >> 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]]