Re: [問題] eval 使用問題

作者: andrew43 (討厭有好心推文後刪文者)   2015-02-06 06:09:01
你的問題大概可以分成二個階段。
1. 在 R 中的字串合併常用 paste() 或它的子集 paste0() 來做。
2. 在 R 中的 eval 不像 matlab 那麼直接,
而是要靠 eval(parse(text = 字串)) 來進行。
所以你研究一下以下 R code。
run <- c("net", "fsns", "flns")
for(i in run) {
txt <- paste0(i, "Var_sum1=sum(", i, "_people)")
cat(txt, "\n") # 看看字串對不對
eval(parse(text = txt)) # 針對 txt 做 eval。
}
※ 引述《Tolkien (怪獸)》之銘言:
: [問題類型]:
:
: 程式諮詢(我想用R 做某件事情,但是我不知道要怎麼用R 寫出來)
:
: [軟體熟悉度]:
: 請把以下不需要的部份刪除
: 新手(matlab background)
:
: [問題敘述]:
: 字串變變數
: [程式範例]:
: 在matlab 字串矩陣要寫入迴圈中我會用:
: run = { 'net' 'fsns' 'flns' }
: for in=1:3
: eval(['' run{in} 'Var_sum1=sum(' run{in} '_people'])
: endif
: 這個代表我執行
: netVar_sum1 =sum (net_people)
: fsnsVar_sum1 =sum (fsns_people)
: flsnVar_sum1 =sum (flns_people)
: 請問在R 要如何把字串矩陣寫入迴圈
: 我的Code:
: run=c('net,'fsns','flns')
: for(i in 1:3){
: ????????????
: }
: 但還是不行
: 請高手幫幫忙 謝謝
作者: Tolkien (怪獸)   2015-02-06 06:29:00
謝謝一直聽說R 像 matlab,所以像說寫在一行就可以了。

Links booklink

Contact Us: admin [ a t ] ucptt.com