There is a R markdown sharing website called RPubs but I tried putting the html code into blogger . The purpose here is to keep a note while exploring R.
combinig the columns in a df 
The question is how do I combine the columns in a dataframe I tried using dplyr , but I realized that I’m still a novice So here is a solution in using base r
Create a df
combinig the columns in a df
roshan
07/18/2015
Create a df
f = list("f1","f2","f3")
p = list("p1","p2","p3")
g = list("g1","g2","g3")
df = as.data.frame(cbind(phylum=p, family=f, genus=g))print(df) ##   phylum family genus
## 1     p1     f1    g1
## 2     p2     f2    g2
## 3     p3     f3    g3 if it wasn't converted to a data.frame then this would have worked
 cbind( paste0(df[1,],"_",df[2,],"_",df[3,]))
 rbind( paste0(df[1,],"_",df[2,],"_",df[3,]))# these two gives the same result
cbind( paste0(df[,1],"_",df[,2],"_",df[,3]))
cbind(paste0(df$phylum, "_", df$family, "_" , df$genus))cbind(paste0(df$phylum, "_", df$family, "_" , df$genus))##      [,1]      
## [1,] "p1_f1_g1"
## [2,] "p2_f2_g2"
## [3,] "p3_f3_g3"# these two give the same results
rbind( paste0(df[,1],"_",df[,2],"_",df[,3]))
rbind(paste0(df$phylum, "_", df$family, "_" , df$genus))rbind(paste0(df$phylum, "_", df$family, "_" , df$genus))##      [,1]       [,2]       [,3]      
## [1,] "p1_f1_g1" "p2_f2_g2" "p3_f3_g3"
Another easy way I found was :
as.matrix(lapply(df, function(x) paste(x, collapse="_") ))
[,1]
phylum "p1_p2_p3"
family "f1_f2_f3"
genus "g1_g2_g3"
as.matrix(lapply(df, function(x) paste(x, collapse="_") ))
[,1]
phylum "p1_p2_p3"
family "f1_f2_f3"
genus "g1_g2_g3"
 
No comments:
Post a Comment