I imported a spreadsheet into a variable sh
e.g. sh$aaaa, sh$bbbb, etc...
doing the following:
tsSource <- ts(paste("sh$",NAMEVARIABLE,sep="") ... )
fails. The paste isn't evaluating properly. What is the proper way to
concatenate a data source with a member name such that they evaluate
properly.
actual code below:
doEnv <- function(SOURCEDATA,REGDATA,HOUR,ENVNAME,REPORTNAME) {
print(SOURCEDATA)
print(REGDATA)
print(HOUR)
print(ENVNAME)
print(REPORTNAME)
# blah blah blah ...
#Raw Data
channel1 <- odbcConnectExcel("Q:/metrics.xls")
sqlTables(channel1)
sh1 <- sqlFetch(channel1, "Actuals$")
close(channel1)
# Something here is borked like the Chef himself....
tsSource<-ts(paste("sh1$",ENVNAME,sep=""),start=c(2004,1),freq=52)
print(tsSource)
plot(tsSource,col="grey",type="n")
return("AUTOBOT") # I use AUTOBOT or DECEPTICON for generic pass fail
return
values. Yes I am a geek...
}
[[alternative HTML version deleted]]
On Jul 14, 2009, at 2:02 PM, Idgarad wrote:> I imported a spreadsheet into a variable sh > > e.g. sh$aaaa, sh$bbbb, etc... > > doing the following: > > tsSource <- ts(paste("sh$",NAMEVARIABLE,sep="") ... )From prior experience, my guess is that you want collapse= rather than sep> > fails. The paste isn't evaluating properly. What is the proper way to > concatenate a data source with a member name such that they evaluate > properly. > > actual code below: > doEnv <- function(SOURCEDATA,REGDATA,HOUR,ENVNAME,REPORTNAME) { > print(SOURCEDATA) > print(REGDATA) > print(HOUR) > print(ENVNAME) > print(REPORTNAME) > # blah blah blah ... > > #Raw Data > channel1 <- odbcConnectExcel("Q:/metrics.xls") > sqlTables(channel1) > sh1 <- sqlFetch(channel1, "Actuals$") > close(channel1) > > # Something here is borked like the Chef himself.... > tsSource<-ts(paste("sh1$",ENVNAME,sep=""),start=c(2004,1),freq=52) > print(tsSource) > plot(tsSource,col="grey",type="n") > return("AUTOBOT") # I use AUTOBOT or DECEPTICON for generic pass > fail return > values. Yes I am a geek... > } > > [[alternative HTML version deleted]] > > ______________________________________________ > 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.David Winsemius, MD Heritage Laboratories West Hartford, CT
The dollar sign ($) is a magical shortcut for the [[ subset operator (yes the doubling is intentional) for accessing parts of lists/data frames/etc. When you try to use magical shortcuts for purposes beyond what they were designed for, you get the computer equivalent of turning yourself into a chicken. It is better to go back to the original operator rather than trying to get the magical shortcut to do what you want. Your solution may be as simple as:> tsSource <- ts( sh[[NAMEVARIABLE]] )And the like. Hope this helps, -- Gregory (Greg) L. Snow Ph.D. Statistical Data Center Intermountain Healthcare greg.snow at imail.org 801.408.8111> -----Original Message----- > From: r-help-bounces at r-project.org [mailto:r-help-bounces at r- > project.org] On Behalf Of Idgarad > Sent: Tuesday, July 14, 2009 12:02 PM > To: r-help at r-project.org > Subject: [R] Proper Paste for Data Member > > I imported a spreadsheet into a variable sh > > e.g. sh$aaaa, sh$bbbb, etc... > > doing the following: > > tsSource <- ts(paste("sh$",NAMEVARIABLE,sep="") ... ) > > fails. The paste isn't evaluating properly. What is the proper way to > concatenate a data source with a member name such that they evaluate > properly. > > actual code below: > doEnv <- function(SOURCEDATA,REGDATA,HOUR,ENVNAME,REPORTNAME) { > print(SOURCEDATA) > print(REGDATA) > print(HOUR) > print(ENVNAME) > print(REPORTNAME) > # blah blah blah ... > > #Raw Data > channel1 <- odbcConnectExcel("Q:/metrics.xls") > sqlTables(channel1) > sh1 <- sqlFetch(channel1, "Actuals$") > close(channel1) > > # Something here is borked like the Chef himself.... > tsSource<-ts(paste("sh1$",ENVNAME,sep=""),start=c(2004,1),freq=52) > print(tsSource) > plot(tsSource,col="grey",type="n") > return("AUTOBOT") # I use AUTOBOT or DECEPTICON for generic pass fail > return > values. Yes I am a geek... > } > > [[alternative HTML version deleted]] > > ______________________________________________ > 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.