[R] data frame: adding columns from data and file title

jim holtman jholtman at gmail.com
Wed Nov 28 20:30:15 CET 2012


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 <smartpink111 at 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.guilbert at auckland.ac.nz>
> To: r-help at 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 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.
>
>
> ______________________________________________
> 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.



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




More information about the R-help mailing list