代码之家  ›  专栏  ›  技术社区  ›  Darren Tsai

变量在purr::pmap中未赋值

  •  3
  • Darren Tsai  · 技术社区  · 6 年前

    玩具数据

    (df <- data.frame(Var1 = LETTERS[1:5],
                      Var2 = ISOdate(2018, 1:5, 1)))
    
    #   Var1                Var2
    # 1    A 2018-01-01 12:00:00
    # 2    B 2018-02-01 12:00:00
    # 3    C 2018-03-01 12:00:00
    # 4    D 2018-04-01 12:00:00
    # 5    E 2018-05-01 12:00:00
    
    str(df)
    # 'data.frame': 5 obs. of  2 variables:
    #  $ Var1: Factor w/ 5 levels "A","B","C","D",..: 1 2 3 4 5
    #  $ Var2: POSIXct, format: "2018-01-01 12:00:00" "2018-02-01 12:00:00" ...
    

    描述

    df 有两个变量,一个是 factor 另一个是 POSIXct . 我做了一个简单的操作,例如一个接一个地粘贴两个变量。预期产出应为:

    mapply(df$Var1, df$Var2, FUN = paste, sep = "-")
    
    [1] "A-2018-01-01 12:00:00" "B-2018-02-01 12:00:00" "C-2018-03-01 12:00:00"
    [4] "D-2018-04-01 12:00:00" "E-2018-05-01 12:00:00"
    

    但是,如果使用 purrr::pmap() ,我有点不对劲。显然,每个变量都是 未分类的 在粘贴到一起之前将其原始类型。为什么是 pmap 设计成这样,怎么处理?(这种情况不会在其他map函数中发生,例如 map map2 )

    purrr::pmap(df, paste, sep = "-")
    
    [[1]]
    [1] "1-1514808000"
    
    [[2]]
    [1] "2-1517486400"
    
    [[3]]
    [1] "3-1519905600"
    
    [[4]]
    [1] "4-1522584000"
    
    [[5]]
    [1] "5-1525176000"
    
    0 回复  |  直到 6 年前