0
說我寫了下面的目的,一個方程,eqn.r
,使用R中的sprintf的命令,其值根據輸入的向量,pizza
:有一個對象是與sprintf的書面的方程評估中的R
eqn.r<- sprintf("sum((%s - mean(%s,na.rm=T))^2,na.rm=T)",pizza,pizza)
pizza<-c(1:10)
當我鍵入eqn.r
到R控制檯我得到這個:
"sum((pizza - mean(pizza,na.rm=T))^2,na.rm=T)"
我希望它實際上評估,並打印這樣的:
> sum((pizza - mean(pizza,na.rm=T))^2,na.rm=T)
[1] 82.5
使用'「比薩」,「比薩」'的'的sprintf()'然後就可以評估'eval(parse(text = eqn.r))',但這並不是在世界歷史上任何地方都推薦過的。爲什麼你甚至需要一個字符串?只需使用最後一行。 –
@RichardScriven我正在寫一個命令,將輸入數據集和該數據集中的變量名稱(在此示例中爲披薩)作爲輸入,我想在數據集中的變量上運行一個此方程,每個方程由用戶到特定的功能。所以:f(數據,披薩){eqn}。 – colin