[R] arrange data

arun smartpink111 at yahoo.com
Sat Apr 6 20:43:25 CEST 2013




Hi,
You could also do this with:

dat2<- dat1
 dat2[]<-lapply(dat1,function(x) c(x[!is.na(x)],x[is.na(x)]))
row.names(res1)<- row.names(dat2)
 identical(dat2,res1)
#[1] TRUE

For your new question:

test<- data.frame(medrw1)

 row.names(test)
  [1] "1"   "2"   "3"   "4"   "5"   "6"   "7"   "8"   "9"   "10"  "11"  "12" 
 [13] "13"  "14"  "15"  "16"  "17"  "18"  "19"  "20"  "21"  "22"  "23"  "24" 
 [25] "25"  "26"  "27"  "28"  "29"  "30"  "31"  "32"  "33"  "34"  "35"  "36" 
 [37] "37"  "38"  "39"  "40"  "41"  "42"  "43"  "44"  "45"  "46"  "47"  "48" 
 [49] "49"  "50"  "51"  "52"  "53"  "54"  "55"  "56"  "57"  "58"  "59"  "60" 
 [61] "61"  "62"  "63"  "64"  "65"  "66"  "67"  "68"  "69"  "70"  "71"  "72" 
 [73] "73"  "74"  "75"  "76"  "77"  "78"  "79"  "80"  "81"  "82"  "83"  "84" 
 [85] "85"  "86"  "87"  "88"  "89"  "90"  "91"  "92"  "93"  "94"  "95"  "96" 
 [97] "97"  "98"  "99"  "100" "101" "102" "103" "104" "105" "106" "107" "108"
[109] "109" "110" "111" "112" "113" "114" "115" "116" "117" "118" "119" "120"
[121] "121" "122" "123" "124" "125" "126" "127" "128" "129" "130" "131" "132"
[133] "133" "134" "135" "136" "137" "138" "139" "140"
 test$newCol<- row.names(test)
 test1<-test[,c(2:1)]
 head(test1)
#  newCol medrw1
#1      1  1.499
#2      2  1.209
#3      3  1.400
#4      4  1.590
#5      5  1.463
#6      6  1.771

A.K. 

________________________________
 From: catalin roibu <catalinroibu at gmail.com>
To: arun <smartpink111 at yahoo.com> 
Sent: Saturday, April 6, 2013 2:27 PM
Subject: Re: [R] arrange data
 

It is not for this case. I want to create a growth mean by row and compare with another serie mean.
medrw1 <- apply(res,1,median,na.rm=TRUE)
test<-cbind(medrw1) 
in this case I want to create a new column at first position which contain this seq().  This column I want to set as row.names.

Thank you very much!



On 6 April 2013 21:24, arun <smartpink111 at yahoo.com> wrote:


>
>
>________________________________
>From: catalin roibu <catalinroibu at gmail.com>
>To: arun <smartpink111 at yahoo.com>
>Sent: Saturday, April 6, 2013 1:43 PM
>Subject: Re: [R] arrange data
>
>
>I want a column with seq(1,nrow(res),by=1) and set this column as row.names.
>
>
>Thank you very much!
>
>
>
>On 6 April 2013 20:41, arun <smartpink111 at yahoo.com> wrote:
>
>
>>>________________________________
>> From: catalin roibu <catalinroibu at gmail.com>
>>To: arun <smartpink111 at yahoo.com>
>>Sent: Saturday, April 6, 2013 1:20 PM
>>
>>Subject: Re: [R] arrange data
>>
>>
>>It is perfect! Thank you very much! A last question if you don't mind. How can add in the first position a new column ( from 1 to max row length)  which I use as rowname? 
>>
>>
>>
>>>
>>>On 6 April 2013 20:06, arun <smartpink111 at yahoo.com> wrote:
>>>
>>>
>>>>
>>>>
>>>> lst1<-lapply(dat1,function(x) x[!is.na(x)])
>>>> res<-as.data.frame(sapply(lst1,function(x) c(x,rep(NA,max(sapply(lst1,length))-length(x)) )))
>>>> head(res)
>>>>
>>>>#     1B    2B    4B    1A    2A    4A    5B    5A  C31A  C31B  C34A  C34B  C35A
>>>>#1 2.518 2.357 1.499 3.647 1.890 2.249 2.896 2.175 0.452 1.177 0.344 0.612 1.722
>>>>#2 2.796 2.759 1.032 3.763 1.182 2.291 2.417 2.597 1.033 0.831 0.351 0.509 1.102
>>>>#3 4.012 2.878 1.126 3.236 1.431 2.635 2.952 2.483 0.679 0.484 0.704 0.461 1.400
>>>>#4 3.611 2.094 1.043 3.032 1.835 3.019 1.590 2.269 0.901 0.576 1.008 0.879 2.222
>>>>#5 2.970 1.371 1.486 1.817 1.884 2.557 1.768 1.463 0.466 0.378 0.708 0.862 1.840
>>>>#6 4.687 1.042 1.252 3.495 2.540 2.592 1.179 1.860 0.608 0.314 0.721 0.624 1.927
>>>>
>>>>#   C35B  C37A  C37B  C36A  C36B  C32A  C32B  C33A  C33B  C39B
>>>>#1 2.482 0.996 0.898 0.179 1.148 2.637 2.917 1.440 1.487 1.291
>>>>#2 1.061 1.243 1.078 1.167 1.209 2.770 2.325 2.006 1.886 0.655
>>>>#3 1.350 0.999 0.992 1.629 1.551 1.996 2.444 1.261 1.343 0.790
>>>>#4 1.952 1.227 1.447 1.067 2.252 2.220 1.635 1.085 1.367 0.633
>>>>#5 2.343 1.049 1.285 1.299 1.182 2.976 2.106 1.388 2.253 0.630
>>>>#6 2.104 1.771 1.204 1.540 1.203 2.847 2.200 2.563 2.348 0.493
>>>>nrow(res)
>>>>#[1] 140
>>>>If you wanted to have the same number of rows as dat1:
>>>>nrow(dat1)
>>>>#[1] 145
>>>>new1<-as.data.frame(matrix(NA,ncol=23,nrow=5))
>>>> colnames(new1)<- colnames(res)
>>>> res1<- rbind(res,new1)
>>>> nrow(res1)
>>>>#[1] 145
>>>>
>>>>
>>>>
>>>>A.K.
>>>>
>>>>
>>>>
>>
>




More information about the R-help mailing list