在没有引号的情况下粘贴以进一步使用R中的变量

时间:2014-08-13 11:19:31

标签: r

我有一个变量,在使用paste形成之后使用。然而,在粘贴变量后,内部报价会使其无法使用。此变量位于as.date内,因此as.name无效。 noquotes效果不佳。有没有其他方法可以在as.date引号免费使用此变量?

一个例子:

names<-c("dateA","dateB")
dateA<-c("5/30/2014","6/01/2014")
dateB<-c("5/30/2014")
dateZ<-as.data.frame(c("5/30/2014","6/01/2014","6/02/2014"))
names(dateZ)<-"date"
dateZ$date <- as.Date(dateZ$date,"%m/%d/%Y")
for (item in names){
  dateZ[paste(item)] <- ifelse(dateZ$date %in% as.Date(paste(item), format = "%m/%d/%Y"), 1, 0)
}

输出

> dateZ
        date dateA dateB
1 2014-05-30     0     0
2 2014-06-01     0     0
3 2014-06-02     0     0

但是我想要的输出是

       date  dateA  dateB
1 2014-05-30     1     1
2 2014-06-01     1     0
3 2014-06-02     0     0

我怀疑这是因为粘贴(物品)而留下的报价。简单地使用item会产生相同的结果。

提前致谢并抱歉在

之前没有提供示例

1 个答案:

答案 0 :(得分:0)

我确信还有其他方法,但解决问题的一种方法是使用get(item):

for (item in names){
  dateZ[item] <- ifelse(dateZ$date %in% as.Date(get(item), format = "%m/%d/%Y"), 1, 0)
}

在这个示例中,您不会通过使用粘贴来实现任何目标,但如果真实案例实际上类似于item = paste0(item1,item2),则上述方法也会有效。