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