【发布时间】:2019-03-14 17:15:48
【问题描述】:
当我将 MATCH 与动物园对象一起使用时,我不确定为什么会在索引中得到 <NA>。假设我有以下内容:
a <- read.zoo(data.frame(date=as.Date('2011-12-31') + 0:49, col1=seq(1,50), col2=seq(11,60)), FUN = as.Date)
mon <- read.zoo(data.frame(date=c(as.Date('2012-01-01'), as.Date('2012-02-01'), as.Date('2012-03-01')), mc=letters[1:3], mc2=LETTERS[1:3]), FUN = as.Date)
然后我尝试匹配:
mon$matched <- a[MATCH(index(mon),index(a))]$col1
然后我尝试查看mon 现在的样子并得到一个错误:
View(mon) Error in View : missing values in 'row.names' are not allowed
进一步查看mon,我不确定额外的<NA> 行来自哪里:
mon
mc mc2 matched
2012-01-01 a A 2
2012-02-01 b B 33
2012-03-01 c C <NA>
<NA> <NA> <NA> <NA>
进行这场比赛的正确方法是什么?结果是正确的,除了最后一行的所有值都是<NA>。我必须在这里做一些根本错误的事情......
【问题讨论】:
-
所以基本上 left_join 到 mon?如果它们是 xts 对象,
merge.xts(mon, a, join = "left")。不知道为什么你会得到 na。也许@G。格洛腾迪克会问这个问题,他可能知道你为什么会得到 NA。 -
a[MATCH(index(mon),index(a))]$col1中最后一个结束括号后缺少逗号,a中的最后一个日期不匹配,因此 NA -
@42- 逗号没有改变任何东西。最后日期的不匹配很好。我特别想弄清楚为什么最后一行的索引和所有数据都有 NA。