# [R] Help with code

Petr PIKAL petr.pikal at precheza.cz
Wed Dec 21 08:28:04 CET 2011

```Hi
>
> hello gurus,
>
> i have a data frame like this
>    HTN HTN_FDR Dyslipidemia CAD t1d_ptype[1:25]
> 1    Y       Y            Y                 T1D
> 2                                           T1D
> 3                                      Ctrl_FDR
> 4                                           T1D
> 5            Y                             Ctrl
> 6                                          Ctrl
> 7                                      Ctrl_FDR
> 8                                           T1D
> 9            Y            Y                 T1D
> 10                                          T1D
> 11                                     Ctrl_FDR
> 12           Y            Y                 T1D
> 13   Y       Y            Y                 T1D
> 14                                          T1D
> 15                                         Ctrl
> 16                                         Ctrl
> 17                                     Ctrl_FDR
> 18                                          T1D
> 19                                          T1D
> 20           Y                              T1D
> 21                                     Ctrl_FDR
> 22                                     Ctrl_FDR
> 23                                         Ctrl
> 24                                         Ctrl
> 25                                          T1D
>
> i am converting it to define the groups more uniformly using this code:
>
> for( i in 1:dim(c1)[1])
> {
>   num_comp<-0
>   for (j in 1:dim(c1)[2])
>      if (c1[i,j]==2) num_comp=num_comp+1      #"Y"=2
>   for (j in 1:dim(c1)[2])
>     if(num_comp>0)
>     {
>      if (data\$t1d_ptype[i] == "T1D" && c1[i ,j] == 2) c2[i,j]<-"T1D_w"
>         if (data\$t1d_ptype[i] == "T1D" && c1[i, j] == 1)
c2[i,j]<-"T1D_oc"
>         if(substr(data\$t1d_ptype[i],1,4) == "Ctrl" && c1[i,j] == 2)
> c2[i,j]<-"Ctrl_w"
>         if (substr(data\$t1d_ptype[i],1,4) == "Ctrl" && c1[i,j] == 1)
> c2[i,j]<-"Ctrl_oc"
>       }
>       else
>        {
>        if(data\$t1d_ptype[i] == "T1D") c2[i,j]<-"T1D_noc"
>        if(substr(data\$t1d_ptype[i],1,4) == "Ctrl") c2[i,j]<-"Ctrl_noc"
>        }
> }
>
> it is giving me error
> In `[<-.factor`(`*tmp*`, iseq, value = structure(c(NA,  ... :
>   invalid factor level, NAs generated
>
> Also it there a simple way to do this.

To do what?
The only error i get is

You probably named your data frame c1 but I do not see any numbers in c1
With your programming style you shall probably use C+ or similar. In R it
is almost always better to operate on whole objects.

Without knowing what you want to achive and without any data I can only
suggest to look at

?factor
?interaction

Regards
Petr

> Thanks
>
> --
> View this message in context: http://r.789695.n4.nabble.com/Help-with-
> code-tp4218989p4218989.html
> Sent from the R help mailing list archive at Nabble.com.
>
> ______________________________________________
> R-help at r-project.org mailing list
> https://stat.ethz.ch/mailman/listinfo/r-help