R:使用变量名而不是值

时间:2017-05-25 15:35:32

标签: r loops for-loop dplyr

我试图创建一个循环,并且对于每次迭代(其数量可以在源文件之间变化)构造一个mutate语句,以根据另一列的值添加一列。

在php中编写我的编程背景,在我看来这应该有效:

for(i in number){
         colname <- paste("Column",i,sep="")
         filtercol <- paste("DateDiff_",i,sep="")
         dataset <- mutate(dataset, a = ifelse(b >= 0 & b <= 364,1,NA))
     }

但是......因为我已经注意到有几次使用R函数,有时函数会忽略你已经定义了一个具有该名称的变量 -  mutate()就在这里。

因此,我没有获得标题为&#34; a1&#34;,&#34; a2&#34;,&#34; a3&#34;等的几个专栏,而是获得一个名为&#34的专栏; a&# 34;每次迭代都会被覆盖。

首先,有人可以向我指出我在哪里出错,但其次可以有人向我解释在什么情况下R忽略变量名称,因为它现在发生了几次而且它在这一点上看起来非常不稳定。我确定它没有,而且那里有逻辑,但它确实很混乱。

还值得一提的是,我原来是这样尝试的:

just.dates <- just.dates %>%
     for(i in number){
         a <- paste("a",i,sep="")
         filtercol <- paste("DateDiff_",i,sep="")
         mutate(a = ifelse(filtercol >= 0 & filtercol <= 364),1,NA)
     }

但是这样决定我只传递for()循环4参数,只需要三个。

1 个答案:

答案 0 :(得分:0)

这样的事可能适合你。与mutate()相反的mutate_()函数可以帮助你解决这个问题。

server.get('/page2', restify.serveStatic({
 directory:  __dirname,
 file: 'index2.html'
}));