我有一个变量,在使用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会产生相同的结果。
提前致谢并抱歉在
之前没有提供示例答案 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),则上述方法也会有效。