【问题标题】:r function to change valuesr函数改变值
【发布时间】:2019-05-14 12:13:16
【问题描述】:

我有以下数据:

library(tidyverse)

d <- tibble(
  year = c(2018, 2019, 2020, 2021))

我希望数据看起来像这样:

d2 <- tibble(
  year = c(201718, 201819, 201920, 202021))

我有以下功能:

date_change = function(x, n) {
 x+199600
}

那么如果我把它应用到数据上:

date_change(d$year)

我明白了:

 [1] 201618 201619 201620 201621

但这并不是我想要的。有谁知道如何使用函数来做到这一点?

我知道我可以手动替换该值,但我需要一个能够将规则应用于大型数据集的函数。

谢谢

【问题讨论】:

  • 也许只使用mutate?您的预期输出是什么?
  • 您添加的值没有得到正确的输出。您可能需要不同的号码

标签: r function dplyr


【解决方案1】:

这是一个解决方案,适用于您的特殊情况:

paste0(d$year-1, d$year-2000)
[1] "201718" "201819" "201920" "202021"

【讨论】:

    【解决方案2】:

    位数学:

    d <- tibble(year = c(2018, 2019, 2020, 2021))
    
    d %>%
      mutate(year = floor(year / 100) * 10000 + (year %% 1000 - 1) * 100 + year %% 100)
    
    # year
    # <dbl>
    #   1 201718
    # 2 201819
    # 3 201920
    # 4 202021
    

    【讨论】:

      猜你喜欢
      • 2018-03-12
      • 2021-11-05
      • 1970-01-01
      • 2012-01-15
      • 2017-11-27
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多