Or:

read.table(textConnection(as.matrix(df)), sep = " ")


On Tue, Jan 18, 2011 at 11:02 PM, Waclaw Kusnierczyk <w...@idi.ntnu.no>wrote:

> Assuming every row is split into exactly two values by whatever string you
> choose as split, one fancy exercise in R data structures is
>
>    dfsplit = function(df, split)
>        as.data.frame(
>            t(
>                structure(dim=c(2, nrow(df)),
>                    unlist(
>                        strsplit(split=split,
>                            as.matrix(df))))))
>
> so that if your data frame is
>
>    df = data.frame(c('1 2', '3 4', '5 6'))
>
> then
>
>    dfsplit(df, ' ')
>    #   V1 V2
>    # 1  1  2
>    # 2  3  4
>    # 3  5  6
>
> renaming the columns left as an exercise.
>
> vQ
>
>
> On 01/18/2011 05:22 PM, Peter Ehlers wrote:
>
>> On 2011-01-18 08:14, Ivan Calandra wrote:
>>
>>> Hi,
>>>
>>> I guess it's not the nicest way to do it, but it should work for you:
>>>
>>> #create some sample data
>>> df<- data.frame(a=c("A B", "C D", "A C", "A D", "B D"),
>>> stringsAsFactors=FALSE)
>>> #split the column by space
>>> df_split<- strsplit(df$a, split=" ")
>>>
>>> #place the first element into column a1 and the second into a2
>>> for (i in 1:length(df_split[[1]])){
>>>   df[i+1]<- unlist(lapply(df_split, FUN=function(x) x[i]))
>>>   names(df)[i+1]<- paste("a",i,sep="")
>>> }
>>>
>>> I hope people will give you more compact solutions.
>>> HTH,
>>> Ivan
>>>
>>>  You can replace the loop with
>>
>>  df <- transform(df, a1 = sapply(df_split, "[[", 1),
>>                     a2 = sapply(df_split, "[[", 2))
>>
>> Peter Ehlers
>>
>>
>>>
>>> Le 1/18/2011 16:30, boris pezzatti a écrit :
>>>
>>>>
>>>> Dear all,
>>>> how can I perform a string operation like strsplit(x," ")  on a column
>>>> of a dataframe, and put the first or the second item of the split into
>>>> a new dataframe column?
>>>> (so that on each row it is consistent)
>>>>
>>>> Thanks
>>>> Boris
>>>>
>>>
>> ______________________________________________
>> 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.

Reply via email to