Re: [R] Data management problem: convert text string to matrix of 0's and 1's

From: Martin Lam <tmlammail_at_yahoo.com>
Date: Fri 27 Jan 2006 - 19:58:44 EST


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

> 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@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
>



R-help@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 Received on Fri Jan 27 20:07:29 2006

This archive was generated by hypermail 2.1.8 : Sat 28 Jan 2006 - 02:13:46 EST