On Oct 25, 2010, at 8:56 PM, Daisy Englert Duursma wrote:
Hello,
If I have a dataframe:
example(data.frame)
zz<-
c
("aa_bb
","bb_cc
","cc_dd","dd_ee","ee_ff","ff_gg","gg_hh","ii_jj","jj_kk","kk_ll")
ddd <- cbind(dd, group = zz)
and I want to divide the column named group by the "_", how would I
do this?
so instead of the first row being
x y fac char group
1 1 C a aa_bb
it should be:
x y fac char group_a group_b
1 1 C a aa bb
I know for a vector I can:
x1 <- c("a_b","b_c","c_d")
do.call("rbind",strsplit(x1, "_"))
but I am not sure how this relates to my data.frame
The group columns is a factor, as is the default structure for non-
numeric character arguments to dataframe() and cbind.data.frame(). If
you want to the split values you must first convert to character:
> ddd$group_a <- lapply(strsplit(as.character(ddd$group), "_"), "[", 1)
> ddd$group_b <- lapply(strsplit(as.character(ddd$group), "_"), "[", 2)
> ddd
x y fac char group group_a group_b
1 1 1 C a aa_bb aa bb
2 1 2 B b bb_cc bb cc
3 1 3 C c cc_dd cc dd
4 1 4 C d dd_ee dd ee
5 1 5 B e ee_ff ee ff
6 1 6 A f ff_gg ff gg
7 1 7 C g gg_hh gg hh
8 1 8 A h ii_jj ii jj
9 1 9 B i jj_kk jj kk
10 1 10 B j kk_ll kk ll
--
David.
______________________________________________
R-help@r-project.org 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.