[R] split strings in a vector and convert it to a data.frame

Gabor Grothendieck
2010-02-10T00:52:36Z

On Tue, Feb 9, 2010 at 6:46 PM, Martin Batholdy <batholdy at
googlemail.com> wrote:
> hi,
>
> I have a vector full of strings like;
>
>
> xy_100_ab ? ? ? xy_101_ab ? ? ? xy_102_ab ? ? ? xy_103_ab
>
>
> I want to seperate each string in three pieces and the separator should be
the "_"
>
> at the end I want a data.frame like:
>
> column1 column2 column3
> xy ? ? ? ? ? ? ?100 ? ? ? ? ? ? ? ? ? ? ab
> xy ? ? ? ? ? ? ?101 ? ? ? ? ? ? ? ? ? ? ab
> xy ? ? ? ? ? ? ?102 ? ? ? ? ? ? ? ? ? ? ab
> xy ? ? ? ? ? ? ?103 ? ? ? ? ? ? ? ? ? ? ab
>
>
> I tried strsplit but I couldn't figure out how to convert the list I
get into a data.frame.
>
> I just need a function like read.table. But it seems that read.table only
can handle files, not vectors...


Using textConnection() it can handle character vectors:

> DF <- read.table(textConnection(x), sep = "_"); DF
  V1  V2 V3
1 xy 100 ab
2 xy 101 ab
3 xy 102 ab
4 xy 103 ab