r - 创建函数来格式化数据框中的列

标签 r function dplyr

我有一个约会时间,我正在尝试删除和清理。我不确定是否有开箱即用的东西。我做了一些搜索但找不到任何东西。日期格式为..

2017-01-01T01:36:17.000Z

可重现的示例:

StartDate <- c("2017-01-01T01:36:17.000Z", "2017-01-01T01:36:17.000Z")
Num <- c(1,2)
DataFrame <- data_frame(Num, StartDate)

我已通过执行以下操作修复了该问题

require(dplyr)
require(tidyr)
require(lubridate)

DataFrame <- DataFrame %>%
   separate(StartDate , into = c("NewDate", "tail"), sep = "T") %>%
   mutate(NewDate= ymd(NewDate)) %>%
   select(-tail)

我想做的是将它变成一个函数,这样我就可以在需要时通过管道传递它。

我想出了以下内容,但未能使其发挥作用。我还尝试了separate_和mutate_的变体。但仍然没有运气。

ztime <- function(df, datecol, newcol) {
  library(lubridate)
  library(tidyr)
  library(dplyr)


  df <- df %>%
    separate_(datecol, into = c(newcol, "extra"), sep = "T") #%>%
    mutate_(newcol = ymd(newcol)) %>%
    select(-extra)

}

希望大家多多指教!预先感谢您

最佳答案

为什么不从 lubridate 调用 as_date

dater <- function(x){
  lubridate::as_date(x)
}
dater("2017-01-01T01:36:17.000Z")
[1] "2017-01-01"

最佳

科林

关于r - 创建函数来格式化数据框中的列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45312653/

相关文章:

r - 在 R 中,在字符串中将大写转换为小写,反之亦然

function - Terraform - 迭代模板中的对象列表

c++ - 将参数传递给自动转换为指针的函数

R dplyr pivot wider with duplicates 并生成变量名

r - 在管道中使用bind_rows

r - 如何使用多行文本在分组条形图的条形上添加值?

r - 在 R 中旋转数据

r - 线框:具有多个表面和透明度的图例颜色

c++ - 双 const 声明

r - 根据公共(public)值合并同一数据框中的行