[R] pivot table
arun
smartpink111 at yahoo.com
Tue Nov 6 23:44:17 CET 2012
Hi,
Is this okay?
library(reshape2)
dat1<-read.table(text="
ID Diag Proc DOB Gender
a diag1 proc1 10/15/1969 M
b diag2 proc2 8/25/1978 F
c diag1 proc1 1/10/1985 M
a diag3 proc3 10/15/1969 M
b diag4 proc4 8/25/1978 F
b diag6 proc5 8/25/1978 F
",sep="",header=TRUE,stringsAsFactors=FALSE)
res<-dcast(melt(dat1,id.var=c("ID","DOB","Gender")),ID+Gender+DOB~value)
res[,4:13]<-ifelse(is.na(res[,4:13]),0,1)
res
# ID Gender DOB diag1 diag2 diag3 diag4 diag6 proc1 proc2 proc3 proc4
#1 a M 10/15/1969 1 0 1 0 0 1 0 1 0
#2 b F 8/25/1978 0 1 0 1 1 0 1 0 1
#3 c M 1/10/1985 1 0 0 0 0 1 0 0 0
# proc5
#1 0
#2 1
#3 0
A.K.
________________________________
From: farnoosh sheikhi <farnoosh_81 at yahoo.com>
To: arun <smartpink111 at yahoo.com>
Cc: R help <r-help at r-project.org>
Sent: Tuesday, November 6, 2012 5:12 PM
Subject: Re: [R] pivot table
Hi there,
Thanks a lot for your help, but Proc doesn't show in the result.
I also want to assign 1 and 0 instead of the name of variables.
Thanks a lot.
Best,Farnoosh Sheikhi
________________________________
From: arun <smartpink111 at yahoo.com>
To: farnoosh sheikhi <farnoosh_81 at yahoo.com>
Cc: R help <r-help at r-project.org>
Sent: Tuesday, November 6, 2012 1:42 PM
Subject: Re: [R] pivot table
HI,
It is better to dput() an example dataset to work with.
May be this helps:
dat1<-read.table(text="
ID Diag Proc DOB Gender
a diag1 1 10/15/1969 M
b diag2 2 8/25/1978 F
c diag1 1 1/10/1985 M
a diag3 3 10/15/1969 M
b diag4 4 8/25/1978 F
b diag4 5 8/25/1978 F
",sep="",header=TRUE,stringsAsFactors=FALSE)
library(reshape)
res<-reshape(dat1,idvar=c("ID","DOB","Gender"),v.names="Diag",timevar="Proc",direction="wide")
res
# ID DOB Gender Diag.1 Diag.2 Diag.3 Diag.4
Diag.5
#1 a 10/15/1969 M diag1 <NA> diag3 <NA> <NA>
#2 b 8/25/1978 F <NA> diag2 <NA> diag4 diag4
#3 c 1/10/1985 M diag1 <NA> <NA> <NA> <NA>
A.K.
----- Original Message -----
From: farnoosh sheikhi <farnoosh_81 at yahoo.com>
To: "r-help at R-project.org" <r-help at r-project.org>
Cc:
Sent: Tuesday, November 6, 2012 3:37 PM
Subject: [R] pivot
table
Hello,
I have a data which looks like below: Some of the patients have multiple diagnosis.
ID(200 patients) Diag (100 unique Diag-200 in general) Proc (50 uniqe Proc) DOB (200) Gender (200)
a daig1
b diag2
c diag1
I want to reformat this data to :
ID diag1 diag 2 diag 3.. diagx proc1 proc2 proc3... procx DOB Gender
a1011 20F
Thanks a lot for your help and time.
Best,Farnoosh Sheikhi
[[alternative HTML version deleted]]
______________________________________________
R-help at 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.
More information about the R-help
mailing list