HI, If you need the "Tool" column repeated, 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 #Tool Data1.1 Data1.2 Data1.3 Data2.1 Data2.2 Data2.3 Data3.1 Data3.2 Data3.3 #1 A 0 3 2 1 1 1 2 4 3 #2 B 3 1 3 2 2 2 1 3 0 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))) dat4 # Tool Data1.2 Data1.3 Data1.4 Tool Data2.2 Data2.3 Data2.4 Tool Data3.2 #1 A 0 3 2 A 1 1 1 A 2 #2 B 3 1 3 B 2 2 2 B 1 Data3.3 Data3.4 1 4 3 2 3 0 str(dat4) #'data.frame': 2 obs. of 12 variables: # $ Tool : Factor w/ 2 levels "A","B": 1 2 # $ Data1.2: num 0 3 # $ Data1.3: num 3 1 #$ Data1.4: num 2 3 #$ Tool : Factor w/ 2 levels "A","B": 1 2 #$ Data2.2: num 1 2 #$ Data2.3: num 1 2 #$ Data2.4: num 1 2 # $ Tool : Factor w/ 2 levels "A","B": 1 2 # $ Data3.2: num 2 1 # $ Data3.3: num 4 3 # $ Data3.4: num 3 0
A.K. ----- Original Message ----- From: siddu479 <onlyfordigitalst...@gmail.com> To: r-help@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@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. ______________________________________________ R-help@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.