[R] How to split a factor (unique identifier) into several others?

Tribo Laboy tribolaboy at gmail.com
Thu Feb 7 07:44:10 CET 2008


Hello,

I have a data frame with a factor column, which uniquely identifies
the observations in the data frame and it looks like this:

sample1_condition1_place1
sample2_condition1_place1
sample3_condition1_place1
.
.
.
sample3_condition3_place3

I want to turn it into three separate factor columns "sample",
"condition" and "place".

This is what I did so far:

# generate a factor column for the example
fctr<- factor(c("sample1_condition1_place1",
"sample2_condition1_place1", "sample3_condition1_place1"))
splitfctr <- strsplit(as.character(fctr),"_")

> splitfctr
[[1]]
[1] "sample1"    "condition1" "place1"

[[2]]
[1] "sample2"    "condition1" "place1"

[[3]]
[1] "sample3"    "condition1" "place1"


Now this is all fine, but how do I make three separate factors of this?
The object "splitfctr" is a list of character vectors, each character
vector being composed of the words after spitting the long original
world.
Now I want to form new character vectors, which contain the first
component of each list entry, then another vector for the second
component, etc.
I don't want to use loops, unless that's the only way to do it.I guess
I have some difficulty with understanding how R indexing works...



More information about the R-help mailing list