从另一个R文件执行多组行

时间:2017-09-11 08:57:36

标签: r

之前我问过这个,但也许我没有问到这一点。 我想从我的Master-R文件中运行其他很长的R文件。第一眼看到source()很容易实现。

关键是,它们太长了,我不想运行所有这些,只是它的某个部分。我之前发帖的人向我展示了这个隐藏的gem,但两者都是从A点到B点。

我想要的是从我的文件中运行另一个文件,从第x行开始,然后运行到第x + z行,跳过一定数量的行,然后继续从第y行运行相同的文件到y + z 。

我附加的链接中的解决方案很有效,但是我不能跳过行(这个编码超出了我的技能),没有创建另一个功能并设置更多的起点和终点。

是否可以调用类似source(df.R, excludeLine(1:6, 20, 30:end)的内容?

1 个答案:

答案 0 :(得分:0)

Just slightly modifying this very excellent answer:应该有用。

  sourcePartial <- function(fn,startTag1='#from here1',endTag1='#to here1', startTag2='#from here2',endTag2='#to here2') {
  lines <- scan(fn, what=character(), sep="\n", quiet=TRUE)
  st1<-grep(startTag1,lines)
  en1<-grep(endTag1,lines)
  st2<-grep(startTag2,lines)
  en2<-grep(endTag2,lines)
  tc <- textConnection(lines[c((st1+1):(en1-1),(st2+1):(en2-1))])
  source(tc)
  close(tc)
}

但实际上,下次你自己去吧,你可能会学习......