[R] transform 1 col to 2 col

arun smartpink111 at yahoo.com
Thu May 24 18:23:20 CEST 2012


Hi,

Just an addendum.

Suppose if you want to add more columns and do the split, you can try,

inscrutable.df2<-data.frame(inscrutable.df1,V2=(c(rnorm(1),"GTDF","SQ:1234","DFFD","DFDSE")[rep(c(1,2,3,4,5),times=4)]))
inscrutable3.df3<-data.frame(matrix(inscrutable.df1$V1,ncol=2,byrow=TRUE),matrix(inscrutable.df2$V2,ncol=2,byrow=TRUE))  

A.K.



----- Original Message -----
From: "MacQueen, Don" <macqueen1 at llnl.gov>
To: Soheila Khodakarim <lkhodakarim at gmail.com>
Cc: "r-help at r-project.org" <r-help at r-project.org>
Sent: Thursday, May 24, 2012 10:19 AM
Subject: Re: [R] transform 1 col to 2 col

See insertion below

-- 
Don MacQueen

Lawrence Livermore National Laboratory
7000 East Ave., L-627
Livermore, CA 94550
925-423-1062





On 5/24/12 1:43 AM, "Jim Lemon" <jim at bitwrit.com.au> wrote:

>On 05/24/2012 05:10 PM, Soheila Khodakarim wrote:
>> Dear All
>>
>> How can I transform 1 column to 2 columns in R?
>>
>> 211217_s_at
>>
>> GO:0005249
>>
>> 211217_s_at
>>
>> GO:0005251
>>
>> 211217_s_at
>>
>>     GO:0005515
>>
>> 211217_s_at
>>
>> GO:0015271
>>
>>    211217_s_at
>>
>>    GO:0030955
>>
>>
>>
>>
>>
>> 211217_s_at
>>
>> GO:0005249
>>
>> 211217_s_at
>>
>> GO:0005251
>>
>>    211217_s_at
>>
>>     GO:0005515
>>
>> 211217_s_at
>>
>> GO:0015271
>>
>>    211217_s_at
>>
>> GO:0030955
>>
>Hi Soheila,
>Let us begin with the assumption that your "col" is roughly what you
>posted, and that text resides in a file named "inscrutable.dat". Let us
>first read that text into a data frame in R:
>
>inscrutatble.df<-read.table("inscrutable.dat")
>  inscrutable.df
>             V1 
>
>1 211217_s_at
>2  GO:0005249
>3  211217_s_at
>4   GO:0005251
>5  211217_s_at
>6   GO:0005515
>7  211217_s_at
>8   GO:0015271
>9  211217_s_at
>10  GO:0030955
>11 211217_s_at
>12  GO:0005249
>13 211217_s_at
>14  GO:0005251
>15 211217_s_at
>16  GO:0005515
>17 211217_s_at
>18  GO:0015271
>19 211217_s_at
>20  GO:0030955
>
>Now we will further assume that you want to place every odd element in
>one "col" and every even element in the other "col".


Or perhaps:

  matrix(inscrutable.df$V1, ncol=2, byrow=TRUE)

or
  data.frame(matrix(inscrutable.df$V1, ncol=2, byrow=TRUE))

to get a data frame.

-Don

>
>inscrutable2.df<-data.frame(
>  col1=inscrutable.df$V1[seq(1,length(inscrutable.df$V1),by=2)],
>  col2=inscrutable.df$V1[seq(2,length(inscrutable.df$V1),by=2)])
>inscrutable2.df
>           col1       col2
>1  211217_s_at GO:0005249
>2  211217_s_at GO:0005251
>3  211217_s_at GO:0005515
>4  211217_s_at GO:0015271
>5  211217_s_at GO:0030955
>6  211217_s_at GO:0005249
>7  211217_s_at GO:0005251
>8  211217_s_at GO:0005515
>9  211217_s_at GO:0015271
>10 211217_s_at GO:0030955
>
>There we are - easy as pie.
>
>Jim
>
>______________________________________________
>R-help at 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 at 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.




More information about the R-help mailing list