as_mapper(.f, ...) 中的错误:找不到对象

Error in as_mapper(.f, ...) : object not found

我有一个如下所示的数据框

# A tibble: 4 x 2
    iden date      
  <dbl> <date>    
1     1 2011-02-21
2     2 2013-03-11
3     3 NA        
4     4 NA 

我正在尝试执行以下命令

 data <- data %>%
      map(c(test, delta), as.name) %>%
      setNames(c("test", "delta"))

但是我得到以下错误

Error in as_mapper(.f, ...) : object 'iden' not found

然而,当我像下面这样重写上面的命令时,我得到如下所示的输出

map(c(data$test, data$delta),as.name)
  1. 我可以知道为什么代码不适用于 %>% 运算符吗?

  2. 请问为什么日期值会变成输出中的数字?

我不清楚你想在这里做什么,但回答你的问题-

  1. May I know why the code doesn't work with the %>% operator

因为这就是管道的工作原理。管道的左侧是右侧函数的第一个参数。所以当你这样做时

data %>% map(c(iden, date),as.name)

你实际上在做 :

map(data, c(iden, date),as.name)

其中returns同样的错误。

Error in as_mapper(.f, ...) : object 'iden' not found`


对于第二个问题:

May I know why the date value is changed to the number in the output?

我不知道 为什么 但日期在内部存储为自 1970-01-01 以来的天数,可以通过将日期更改为数字来验证。

as.numeric(data$date)
#[1] 15026 15775    NA    NA

你得到的输出是相似的数字。