Here is how to get the information from the file name that you want: > # let's assume you have the filename > fileName <- "G7_pig328_unit328_Site141_30MAR2012_RNo4_SitNo1.csv" > # parse it for the group and bird names > group <- sub("^G([0-9]+).*", "\\1", fileName) > bird <- sub(".*pig([0-9]+).*", "\\1", fileName) > group [1] "7" > bird [1] "328" > >
On Wed, Nov 28, 2012 at 7:40 AM, arun <smartpink...@yahoo.com> wrote: > Hi, > TRy this: > dat1 <- read.table(text=" > Date_ Time_ Speed Course Type_ Distance > 30/03/2012 11:15:05 108 121 -2 0 > 30/03/2012 11:15:06 0 79 0 0 > 30/03/2012 11:15:07 0 76 0 1 > 30/03/2012 11:15:08 0 86 0 2 > 30/03/2012 11:15:09 0 77 0 3 > ", header = TRUE, stringsAsFactors = FALSE) > fileN <- "G7_pig328_unit328_Site141_30MAR2012_RNo4_SitNo1.csv" > dat1$cDistance<-cumsum(dat1$Distance) > > dat1$Group<-as.numeric(unlist(strsplit(gsub("^\\D+(\\d+)\\D+(\\d+).*","\\1 > \\2",fileN)," ")))[1] > dat1$BIRD<-as.numeric(unlist(strsplit(gsub("^\\D+(\\d+)\\D+(\\d+).*","\\1 > \\2",fileN)," ")))[2] > dat1 > A.K. > > > > ----- Original Message ----- > From: jgui001 <j.guilb...@auckland.ac.nz> > To: r-help@r-project.org > Cc: > Sent: Wednesday, November 28, 2012 4:33 AM > Subject: [R] data frame: adding columns from data and file title > > Data processing” > > I have a large number of csv files from animal tracks that look like this: > > Date_ Time_ > Speed > Course Type_ > Distance > 30/03/2012 11:15:05 108 > 121 -2 > 0 > 30/03/2012 11:15:06 0 > 79 0 > 0 > 30/03/2012 11:15:07 > 0 > 76 0 > 1 > 30/03/2012 11:15:08 > 0 > 86 0 > 2 > 30/03/2012 11:15:09 > 0 > 77 0 > 3 > > Each file has a name like this > “G7_pig328_unit328_Site141_30MAR2012_RNo4_SitNo1.csv” > > To automate the processing I would like to > 1. Add on various columns calculated from within the data frame e.g. > cumulative distance traveled (cDistance) by Summing the distance column from > [1 :n] for each row > 2 Add columns derived from the file name so when I merge all the files > together I know what observation corresponds to which group and bird etc. > For example G7 stands for group 7, pig328 is pigeon328: > > The file look the same with but with these columns (plus others) added > > cDistance Group BIRD > 0 7 328 > 0 7 328 > 1 7 328 > 3 7 328 > 6 7 328 > > I was thinking a function like this for cDistance (if I can get it to work) > > cdistamce <-funtion(x){ > i = 1 > j=nrow(temp1.df) > while(i<=j,ifelse(i=1,"Distance[i]",Sum("Distance")) > i=i+1 > } > > But hit a brick wall and I have no idea about adding columns from the name. > Am I on the right track with the first one and any ideas, coz I can't brain > today I have the dumb!? > > Cheers > Josh > > > > -- > View this message in context: > http://r.789695.n4.nabble.com/data-frame-adding-columns-from-data-and-file-title-tp4651099.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. -- Jim Holtman Data Munger Guru What is the problem that you are trying to solve? Tell me what you want to do, not how you want to do it. ______________________________________________ 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.