[R] reading multiple key=value pairs per line
PIKAL Petr
petr.pikal at precheza.cz
Fri Jan 18 10:41:58 CET 2013
Hi
One option are regular expressions but you can also read data with "=" as separator.
test<-read.table("input_kvpairs.csv", sep=c("="), header=F, stringsAsFactors=F)
#use this function to split and extract numeric parts
extract<-function(x) as.numeric(sapply(strsplit(x,","),"[",1))
# and apply the function to appropriate columns
test1 <- data.frame(sapply(test[,2:3], extract), test[,4])
Now you can put names to resulting data frame see
?names
Regards
Petr
> -----Original Message-----
> From: r-help-bounces at r-project.org [mailto:r-help-bounces at r-
> project.org] On Behalf Of Frank Singleton
> Sent: Friday, January 18, 2013 5:21 AM
> To: r-help at r-project.org
> Subject: [R] reading multiple key=value pairs per line
>
> Hi,
>
> Thanks for a great environmentfor statistical computing :-)
>
> I have some input data in a file ("input_kvpairs.csv") of the form
>
> key1=23, key2=67, key3="hello there"
> key1=7, key2=22, key3="how are you"
> key1=2, key2=77, key3="nice day, thanks"
>
> Now in my head I wish it was of the form ("input.csv")
>
> #key1, key2, key3
> 23, 67, "hello there"
> 7, 22, "how are you"
> 2, 77, "nice day, thanks"
>
> so I could do
>
> data <- read.csv("input.csv", header=TRUE)
>
> where the header column names are derived from the key names
> dynamically, and I could access the data using normal data$key1 or
> data$key2 mechanism.
>
> I guess I could just pre process the file first using python etc to
> create a CSV file with column header derived from key names, and values
> derived from key values, but I am interested to see how experienced R
> folks would handle this inside R.
>
> Thanks,
>
> Frank
>
> ______________________________________________
> 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