玩具数据
(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"