[R] transforming a .csv file column names as per a particular column rows using R code

arun smartpink111 at yahoo.com
Sun Oct 14 22:25:43 CEST 2012


HI,
Just a modification of the column names.  I noticed that the "Data." column starts with "2".  

Try this:

dat1<-read.table(text="
Tool Step_Number Data1 Data2 Data3
A 1 0 1 2
A 2 3 1 4 
A 3 2 1 3
B 1 3 2 1
B 2 1 2 3
B 3 3 2 0
",sep="",header=TRUE,stringsAsFactors=FALSE)  
 
dat3<-with(dat1,aggregate(dat1[,3:5],list(Tool=Tool),function(x) x))
dat3
dat4<-do.call(data.frame,lapply(lapply(dat3[,-1],function(x) x),function(x) cbind(Tool=dat3[,1],x)))
colnames(dat4)<-gsub(".*\\.(Tool)","\\1",gsub("[V]","",colnames(dat4)))
dat4[grepl("Data.*",colnames(dat4))]<-sapply(dat4[grepl("Data.*",colnames(dat4))],function(x)as.numeric(as.character(x)))
colnames(dat4)[colnames(dat4)%in%colnames(dat4[grep("Data",colnames(dat4))])]<-paste(rep(names(lapply(lapply(dat3[,-1],function(x) x),function(x) cbind(Tool=dat3[,1],x))),each=length(unique(dat1$Step_Number))),"_",1:length(unique(dat1$Step_Number)),sep="")
dat4
# Tool Data1_1 Data1_2 Data1_3 Tool Data2_1 Data2_2 Data2_3 Tool Data3_1
#1    A       0       3       2    A       1       1       1    A       2
#2    B       3       1       3    B       2       2       2    B       1
 # Data3_2 Data3_3
#1       4       3
#2       3       0
A.K.




----- Original Message -----
From: siddu479 <onlyfordigitalstuff at gmail.com>
To: r-help at r-project.org
Cc: 
Sent: Sunday, October 14, 2012 12:13 PM
Subject: [R] transforming a .csv file column names as per a particular column rows using R code

Hello all,
I have a .csv file like below.
Tool,Step_Number,Data1,Data2... etc up to 100 columns.
A,1,0,1
A,2,3,1
A,3,2,1
.
.
B,1,3,2
B,2,1,2
B,3,3,2
.
.
...... so on upto 50 rows 
where the column "*Tool*" has distinct steps in second column
"*Step_Number*",but both have same entries in Step_Number column.
I want the output like below.

Tool_1,Data1_1,Data2_1,Tool_2,Data1_2,Data2_2,Tool_3,Data1_3,Data2_3... so
on
A,0,1,A,3,1,A,2,1
B,3,2,B,1,2,B,3,2
......
so on.

basically I am transposing entire data based on a specific column row values
and renaming the column headers.
I have a shell script based on awk which can do this task, but the script is
taking exceptionally higher processing time.

So I am looking for a script in R which can save the time.
"Please revert to me if the problem description is not clear."

Regards
Sidda




-----
Sidda
Business Analyst Lead
Applied Materials Inc.

--
View this message in context: http://r.789695.n4.nabble.com/transforming-a-csv-file-column-names-as-per-a-particular-column-rows-using-R-code-tp4646137.html
Sent from the R help mailing list archive at Nabble.com.

______________________________________________
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