我有一列列表对象,其中包含日期元素,我想选择第一个日期并变异为新列,但现在我遇到了一些索引问题。
我尝试过对列表建立索引,但它不适用于每一行,但始终显示第一行的第一个元素。代码如下所示:
> head(data$Date)
[[1]]
[1] "2016-06-08" "2016-06-08" "2016-06-13" "2016-06-13" "2016-06-13" "2016-06-14"
[7] "2016-06-14" "2016-06-14" "2016-06-14" "2016-06-14" "2016-06-14" "2016-09-15"
[13] "2016-10-31"
[[2]]
[1] "2016-10-02"
[[3]]
[1] "2016-09-25"
[[4]]
[1] "2017-02-16"
> data %>%
+ mutate(time1 = Date[[1]][1])%>%
+ select(time1)
# A tibble: 29,036 x 1
time1
<chr>
1 2016-06-08
2 2016-06-08
3 2016-06-08
4 2016-06-08
5 2016-06-08
6 2016-06-08
Run Code Online (Sandbox Code Playgroud)
我们还可以使用pluckwithreduce确保Dates 不会被强制numeric
library(tidyverse)
data %>%
mutate(time1 = map(Date, pluck, 1) %>%
reduce(c))
Run Code Online (Sandbox Code Playgroud)
如果我们需要last,pluck则last
data %>%
mutate(time1 = map(Date, pluck, last) %>%
reduce(c))
Run Code Online (Sandbox Code Playgroud)