[R] how to turn column into column names and fill it with values

Rui Barradas ru|pb@rr@d@@ @end|ng |rom @@po@pt
Tue Sep 29 20:19:45 CEST 2020


Hello,

Something like this?

mc <- read.table(text = "
       FID  IID   PLATE
1 fam0110 G110 4RWG569
2 fam0113 G113  cherry
3 fam0114 G114  cherry
4 fam0117 G117 4RWG569
5 fam0118 G118 5XAV049
6 fam0119 G119  cherry
", header = TRUE)



library(dplyr)
library(tidyr)

mc %>%
   group_by(PLATE) %>%
   mutate(counts = n()) %>%
   pivot_wider(
     id_cols = c("FID", "IID"),
     names_from = "PLATE",
     values_from = counts,
     values_fill = list(counts = 0)
   )


Hope this helps,

Rui Barradas

Às 17:18 de 29/09/20, Ana Marija escreveu:
> Hello,
> 
> I have a data frame like this:
> 
>> head(mc)
>        FID  IID   PLATE
> 1 fam0110 G110 4RWG569
> 2 fam0113 G113  cherry
> 3 fam0114 G114  cherry
> 4 fam0117 G117 4RWG569
> 5 fam0118 G118 5XAV049
> 6 fam0119 G119  cherry
> ...
>> dim(mc)
> [1] 1625    4
>> length(unique(mc$PLATE))
> [1] 34
> 
> I am trying to make a new data frame which would look like this:
>        FID  IID   PLATE   4RWG569  cherry 5XAV049 ...
> 1 fam0110 G110 4RWG569  2  1  1
> 2 fam0113 G113  cherry   1  2  1
> 3 fam0114 G114  cherry   1  2  1
> 4 fam0117 G117 4RWG569  2  1  1
> 5 fam0118 G118 5XAV049   2  1  1
> 6 fam0119 G119  cherry   1  2  1
> ...
> 
> so the new data frame would have an additional 34 columns (for every
> unique mc$PLATE) and if in the row of PLATE column the value is ==to
> that column name I would have 2 otherwise 1
> 
> I tried to do this with:
> 
> library(reshape2)
>>   m2=dcast(mc, IID ~ PLATE)
> Using PLATE as value column: use value.var to override.
> 
> Please advise,
> Ana
> 
> ______________________________________________
> R-help using r-project.org mailing list -- To UNSUBSCRIBE and more, see
> 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