[R] Syntax Question

Clint Bowman clint at ecy.wa.gov
Wed Apr 7 00:46:42 CEST 2004


Thanks, I have gotten past the problem with good old grep:

as.numeric(strsplit(st[grep("KGEG",st)],",")[[1]][4])
[1] 47.62139

The difficulty is trying to work with some complicated records that are 
coded up to work with perl.  But grep will work perfectly.

Thanks all,

Clint

On Wed, 7 Apr 2004, Jason Turner wrote:

> > I have a large data structure that looks like:
> >
> >> strsplit(st,",")[14395]
> >  [1] "KGEG"
> >  [2] "SA => KGEG"
> >  [3] "72785"
> >  [4] "47.62139"
> >  [5] "-117.52778"
> >  [6] "723"
> >  [7] "WA"
> >  [8] "US"
> >  [9] "2"
> > [10] "SPOKANE SPOKANE INTERNATIONAL AIRPORT"
> > [11] "1"
> >
> >
> > I'd like to be able to retrieve, for example, the latitude
> > as.numeric(strsplit(st,",")[[14395]][4]) and longitude
> > as.numeric(strsplit(st,",")[[14395]][5]) for the entry in the structure
> > where strsplit(st,",")[[14395]][5])=="KGEG" by specifying various station
> > IDs.  That is, if I had a simpler structure I could formulate a
> > logical index which would have something along the lines of
> > as.numeric(st[st[1]=="KSEA"][4]) and it would return 47.62139.
> 
> Too confusing for me.  I'd just convert it to a data frame.
> 
> ## UNTESTED!!!
> stm <- t(matrix(st,nrow=11))
> stdf <- data.frame(stm)
> stdf[stdf[,1]=="KSEA",4]
> 
> ## <OPTIONAL> - just makes life easier later
> ## do some "as.numeric" calls to various columns.
> stdf[,x] <- as.numeric(stdf[,x])
> ## add some names
> names(stdf) <- c("blah",...)
> ## </OPTIONAL>
> 
> Cheers
> 
> Jason
> 
> 

-- 
Clint Bowman			INTERNET:	clint at ecy.wa.gov
Air Quality Modeler		INTERNET:	clint at math.utah.edu
Department of Ecology		VOICE:		(360) 407-6815
PO Box 47600			FAX:		(360) 407-7534
Olympia, WA 98504-7600




More information about the R-help mailing list