【问题标题】:How to extract month from original date?如何从原始日期中提取月份?
【发布时间】:2015-04-21 20:16:21
【问题描述】:

我在下面有一个示例数据:

  original_date    first_payment_date LTV DTI FICO
       01/2007            03/2007     56  37  734
       01/2007            04/2007     80  11  762
       01/2006            02/2007     80  28  656

我想从 original_date 中提取月份部分,但是当我使用 months 函数时,它会抛出一个错误,因为它正在寻找像 '01/01/2007' 这样的值。是否可以在不将值转换为 '01/01/2007' 的情况下获得月份部分?

【问题讨论】:

  • 剪切是什么意思?你只是想要另一个带有月份名称的列吗?还是要创建多个数据框,每个数据框只有一个 original_date 值...?
  • @datapaRty,我没有列出所有数据,但是 01/2007 行有很多,因此我需要将它们切入“01/2007”组

标签: r


【解决方案1】:

假设 original_date 中的前两个字符是您的月份。这应该只返回您的月份部分。

select LEFT(original_date,2) as original_date_month 
 from yourtable

【讨论】:

  • 这是 sql,我需要一个像 01/2010 这样的序列,而不是月份
  • 是否可以提供您期望的样本结果?
【解决方案2】:

您可以使用tidyr 中的separate 函数将日期分隔为月份和年份列。然后您可以使用mutate_each 来获取 monts 的缩写而不是数字。使用month.abb 获取缩写或使用month.name 获取全名。

require(tidyr)
require(dplyr)
df %>% 
  separate(original_date, c("original_month", "original_year"), sep = "/", convert = TRUE) %>%
  separate(first_payment_date, c("first_payment_month", "first_payment_year"), sep = "/", convert = TRUE) %>%
  mutate_each(funs(month.abb[.]), contains("_month"))
## original_month original_year first_payment_month first_payment_year LTV DTI FICO
## 1            Jan          2007                 Mar               2007  56  37  734
## 2            Jan          2007                 Apr               2007  80  11  762
## 3            Jan          2006                 Feb               2007  80  28  656

我使用的数据:

df <- data.frame(original_date = c("01/2007", "01/2007", "01/2006"), 
                 first_payment_date = c("03/2007", "04/2007", "02/2007"), 
                 LTV = c(56L, 80L, 80L), 
                 DTI = c(37L, 11L, 28L), 
                 FICO = c(734L, 762L, 656L), 
                 stringsAsFactors = FALSE)

【讨论】:

    猜你喜欢
    • 2019-03-20
    • 1970-01-01
    • 1970-01-01
    • 2014-05-01
    • 2019-08-31
    • 2021-04-02
    • 2016-08-20
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多