[R] Data management problem: convert text string to matrix of 0's and 1's
Martin Lam
tmlammail at yahoo.com
Fri Jan 27 09:58:44 CET 2006
Hi Dale,
Unfortunately, you didn't say in what for format your
data is saved into, so I presume it's saved as a list
of strings. Perhaps there is a faster/better way, but
this should suffice if your datasize isn't enormous.
data = list()
data[1] = "icsrvepf"
data[2] = "fpevrsci"
data[3] = "ics"
data[4] = "p"
data[5] = ""
data[6] = "f"
data[7] = "ic"
names = as.character(c("i", "c", "s", "r", "v", "e",
"p", "f"))
mymatrix = matrix(0, nrow = 7, ncol = 8)
colnames(mymatrix) = names
for (i in 1:length(data)) {
# split the string into separate characters
chars = strsplit(data[[i]], split="")[[1]]
mymatrix[i,which(names %in%chars)] = 1
}
mymatrix
HTH,
Martin Lam
--- Dale Steele <Dale_Steele at brown.EDU> wrote:
> I have a data management problem which exceeds my
> meager R programming
> skills and would greatly appreciate suggestions on
> how to proceed? The
> data consists of a series of observation periods.
> Specific behaviors are
> recorded for each time period in the order each is
> observed. Their are
> 8 possible behaviors, coded as "i" "c" "s" "r" "v"
> "e" "p" "f".
>
> The data looks like:
> -->
> icsrvepf
> fpevrsci
> ics
> p
>
> f
> ic
> <--
>
> I would like to convert the about to a matrix of the
> form:
>
> i c s r v e p f
> 1 1 1 1 1 1 1 1
> 1 1 1 1 1 1 1 1
> 1 1 1 0 0 0 0 0
> 0 0 0 0 0 0 1 0
> 0 0 0 0 0 0 0 0
> 0 0 0 0 0 0 0 1
> 1 1 0 0 0 0 0 0
>
> Thanks.
>
> Dale
>
> Dale Steele, MD
> Pediatric Emergency Medicine
> Brown Medical School
>
> ______________________________________________
> R-help at stat.math.ethz.ch mailing list
> https://stat.ethz.ch/mailman/listinfo/r-help
> PLEASE do read the posting guide!
> http://www.R-project.org/posting-guide.html
>
More information about the R-help
mailing list