> On 06 Dec 2015, at 04:53 , David Winsemius <dwinsemius at
comcast.net> wrote:
>
>>
>> On Dec 5, 2015, at 4:49 PM, Glenn Schultz <glennmschultz at
me.com> wrote:
>>
>> All,
>>
>> I have not used SED in the past so I am continuing to read its
documentation but I need some help with R
>>
>> Here is my SED command which works:
>> system("sed -i '' '/^[\r#]/d; /AGENCY/d'
/Library/Frameworks/R.framework/Versions/3.2/Resources/library/BondLab/Temp_CashFlow/blx_test.cfm")
>>
>> Here are my R commands which do not work.
>> ReadCF <- paste("system(sed -i '' '/^[\r#]/d;
/AGENCY/d' ",
>> system.file(package = "BondLab"),"/Temp_CashFlow/",
>> CashFlowData, ".cfm)", sep ="")
>>
>> eval(parse(text = ReadCF))
>> I have managed to determine that the problem is the missing quotes but
I do not know how to get those included in the below R command.
>
> I see no explanation of what you are attempting, but the method of
including an actual quote in an R character vector element is to escape it:
>
>> cat("\"")
> "
>> nchar("\"")
> [1] 1
>
At any rate, eval(parse(... is just silly (fortune(181); fortune(106)).
Just use paste() or --- probably better ---sprintf() to construct the command,
and then do
cmd <- ....
system(cmd)
A further advantage is that you can cat(cmd, \n) before running it and see
whether it contains what you intended.
I think (but you check) that this works:
fmt <- "sed -i '' '/^[\r#]/d; /AGENCY/d'
%s/Temp_CashFlow/%s.cfm"
cmd <- sprintf(fmt, system.file(package = "BondLab"), CashFlowData)
system(cmd)
--
Peter Dalgaard, Professor,
Center for Statistics, Copenhagen Business School
Solbjerg Plads 3, 2000 Frederiksberg, Denmark
Phone: (+45)38153501
Email: pd.mes at cbs.dk Priv: PDalgd at gmail.com