[R] creating a new column

Bos, Roger roger.bos at us.rothschild.com
Tue May 8 21:02:19 CEST 2007


I haven't been following your discussion, but based on your method, the following should also work and would be the one-line equivalent:

m$act.surv.time<-pmin(m[,"censoringTime"],m[,"survivalTime"]) 

In other words, you can add a column by just assigning a value to a new column name.  You can also use the following syntax:

m$act.surv.time<-pmin(m$"censoringTime",m$"survivalTime") 

I just thought you might want to see different version of accomplishing the same thing.

Roger.

-----Original Message-----
From: r-help-bounces at stat.math.ethz.ch [mailto:r-help-bounces at stat.math.ethz.ch] On Behalf Of raymond chiruka
Sent: Tuesday, May 08, 2007 12:36 PM
To: Schmitt, Corinna; r
Subject: Re: [R] creating a new column

thanks for the help But l ened up using
  
act.surv.time<-pmin(m[,"censoringTime"],m[,"survivalTime"])
  
m<-cbind(m,act.surv.time)
which seems to work
thanks

  

"Schmitt, Corinna" <Corinna.Schmitt at igb.fraunhofer.de> wrote:  Hallo, I just tried, if my solution might be possible for you. Here is the result:

> s=2
>        while(s!=0){ n=20
+          m<-matrix(nrow=n,ncol=4)
+          colnames(m)=c("treatmentgrp","strata","censoringTime","survivalTime")
+         for(i in 1:20)  m[i,]<-c(sample(c(1,2),1,replace=TRUE),sample(c(1,2),1,replace=TRUE),rexp(1,.007),rexp(1,.002))
+         m<-cbind(m,0)
+          m[m[,3]>m[,4],5]<-1
+          colnames(m)[5]<-"censoring"
+       print(m)
+        s=s-1
+ }

#bilding a data frame from m

x=data.frame(m)

# adding a column, where nrow(x) = number of row in x and in the # new coulmn should stand the entries 1...20.

x=data.frame(x,"actual surv time"=c(1:nrow(x)))

> x
   treatmentgrp strata censoringTime survivalTime censoring actual.surv.time
1             1      2    377.486125   1070.66287         0                1
2             1      2    242.468604   1061.30474         0                2
3             1      2     40.904656     51.88263         0                3
4             2      2     44.025595    590.15317         0                4
5             1      1    253.093279    247.32141         1                5
6             2      2     50.486272    257.25016         0                6
7             1      1    337.591250    554.05931         0                7
8             2      2     74.905075    873.14563         0                8
9             1      2     57.196581    765.43142         0                9
10            1      2    370.147307   1646.65368         0               10
11            1      2    152.738532    480.12355         0               11
12            2      2     15.313303    139.19791         0               12
13            1      2     17.205624    641.15764         0               13
14            2      1     81.753924    107.02202         0               14
15            1      2     60.774221    665.27500         0               15
16            2      1      8.712562    142.90775         0               16
17            1      1     54.542722   1904.88060         0               17
18            2      2     85.626140    214.66811         0               18
19            2      1     31.257923    739.96591         0               19
20            1      1     85.910141    306.14860         0               20


See it works! For more information of data frames, see ?data.frame Here are some additional examples.


> x[2,6]  # Extraction of special entries: x[2,6]= 2 -> row 2, column 6
[1] 2
> x[2,6]=100  # Changing entires: x[2,6]=100
> x
   treatmentgrp strata censoringTime survivalTime censoring actual.surv.time
1             1      2    377.486125   1070.66287         0                1
2             1      2    242.468604   1061.30474         0              100
3             1      2     40.904656     51.88263         0                3
4             2      2     44.025595    590.15317         0                4
5             1      1    253.093279    247.32141         1                5
6             2      2     50.486272    257.25016         0                6
7             1      1    337.591250    554.05931         0                7
8             2      2     74.905075    873.14563         0                8
9             1      2     57.196581    765.43142         0                9
10            1      2    370.147307   1646.65368         0               10
11            1      2    152.738532    480.12355         0               11
12            2      2     15.313303    139.19791         0               12
13            1      2     17.205624    641.15764         0               13
14            2      1     81.753924    107.02202         0               14
15            1      2     60.774221    665.27500         0               15
16            2      1      8.712562    142.90775         0               16
17            1      1     54.542722   1904.88060         0               17
18            2      2     85.626140    214.66811         0               18
19            2      1     31.257923    739.96591         0               19
20            1      1     85.910141    306.14860         0               20
> t=x
> row2=t[-2,] # deleting a row
> row2
   treatmentgrp strata censoringTime survivalTime censoring actual.surv.time
1             1      2    377.486125   1070.66287         0                1
3             1      2     40.904656     51.88263         0                3
4             2      2     44.025595    590.15317         0                4
5             1      1    253.093279    247.32141         1                5
6             2      2     50.486272    257.25016         0                6
7             1      1    337.591250    554.05931         0                7
8             2      2     74.905075    873.14563         0                8
9             1      2     57.196581    765.43142         0                9
10            1      2    370.147307   1646.65368         0               10
11            1      2    152.738532    480.12355         0               11
12            2      2     15.313303    139.19791         0               12
13            1      2     17.205624    641.15764         0               13
14            2      1     81.753924    107.02202         0               14
15            1      2     60.774221    665.27500         0               15
16            2      1      8.712562    142.90775         0               16
17            1      1     54.542722   1904.88060         0               17
18            2      2     85.626140    214.66811         0               18
19            2      1     31.257923    739.96591         0               19
20            1      1     85.910141    306.14860         0               20
> column3=t[,-3] # deleting a column
> column3
   treatmentgrp strata survivalTime censoring actual.surv.time
1             1      2   1070.66287         0                1
2             1      2   1061.30474         0              100
3             1      2     51.88263         0                3
4             2      2    590.15317         0                4
5             1      1    247.32141         1                5
6             2      2    257.25016         0                6
7             1      1    554.05931         0                7
8             2      2    873.14563         0                8
9             1      2    765.43142         0                9
10            1      2   1646.65368         0               10
11            1      2    480.12355         0               11
12            2      2    139.19791         0               12
13            1      2    641.15764         0               13
14            2      1    107.02202         0               14
15            1      2    665.27500         0               15
16            2      1    142.90775         0               16
17            1      1   1904.88060         0               17
18            2      2    214.66811         0               18
19            2      1    739.96591         0               19
20            1      1    306.14860         0               20


Happy working,
Corinna

-----Ursprüngliche Nachricht-----
Von: r-help-bounces at stat.math.ethz.ch [mailto:r-help-bounces at stat.math.ethz.ch] Im Auftrag von Schmitt, Corinna
Gesendet: Dienstag, 8. Mai 2007 10:06
An: raymond chiruka; r
Betreff: Re: [R] creating a new column

Hallo,

I  just now a solution for da data frame. I'm not sure if this is what you  want. Just try if it helps. Here an example of my code where I added a  column:

df <- rbind( c("fred","mary",4),c("fred","mary",7),
             c("fred","mary",9),c("barney","liz",3),
             c("barney","liz",5))
df <- data.frame(df)
colnames(df) <- c("father","mother","child.age")

# adding column
df <- data.frame(df,"weddingdate"=c("Dec 12th, 1980","Dec 12th, 1980",
                                    "Dec 12th, 1980","Apr 9th, 2003",  
                                    "Apr 9th, 2003"))
df    
  
The R-Gui Result:
  father mother child.age    weddingdate
1   fred   mary         4 Dec 12th, 1980
2   fred   mary         7 Dec 12th, 1980
3   fred   mary         9 Dec 12th, 1980
4 barney    liz         3  Apr 9th, 2003
5 barney    liz         5  Apr 9th, 2003

Caution: the number of entries in adding column must correspond to the number of rows in your existing data frame df (here 5)

Try this soultion,
Corinna


-----Ursprüngliche Nachricht-----
Von: r-help-bounces at stat.math.ethz.ch [mailto:r-help-bounces at stat.math.ethz.ch] Im Auftrag von raymond chiruka
Gesendet: Montag, 7. Mai 2007 16:28
An: r
Betreff: [R] creating a new column

hie l would like to create a 6th column "actual surv time" from the following data 
  
  the condition being
  if  censoringTime>survivaltime then actual survtime =survival time
  else actual survtime =censoring time
  
  the code l used to create the data is
  
       s=2
       while(s!=0){ n=20
         m<-matrix(nrow=n,ncol=4)
         colnames(m)=c("treatmentgrp","strata","censoringTime","survivalTime")
        for(i in 1:20)  m[i,]<-c(sample(c(1,2),1,replace=TRUE),sample(c(1,2),1,replace=TRUE),rexp(1,.007),rexp(1,.002))
        m<-cbind(m,0)
         m[m[,3]>m[,4],5]<-1
         colnames(m)[5]<-"censoring"
      print(m)
       s=s-1
          treatmentgrp strata censoringTime survivalTime censoring
   [1,]             1      1       1.012159    1137.80922         0
   [2,]             2      2      32.971439     247.21786         0
   [3,]             2      1      85.758253     797.04949         0
   [4,]             1      1      16.999171      78.92309         0
   [5,]             2      1     272.909896     298.21483         0
   [6,]             1      2     138.230629     935.96765         0
   [7,]             2      2      91.529859     141.08405         0
  
  
  l keep getting an error message when i try to  create the 6th column
  
  
  
  
        
---------------------------------


 [[alternative HTML version deleted]]

______________________________________________
R-help at stat.math.ethz.ch 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 stat.math.ethz.ch 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.


       
---------------------------------


	[[alternative HTML version deleted]]


********************************************************************** * 
This message is for the named person's use only. It may 
contain confidential, proprietary or legally privileged 
information. No right to confidential or privileged treatment 
of this message is waived or lost by any error in 
transmission. If you have received this message in error, 
please immediately notify the sender by e-mail, 
delete the message and all copies from your system and destroy 
any hard copies. You must not, directly or indirectly, use, 
disclose, distribute, print or copy any part of this message 
if you are not the intended recipient.



More information about the R-help mailing list