首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何使用两个条件创建新列

如何使用两个条件创建新列
EN

Stack Overflow用户
提问于 2021-01-14 10:19:43
回答 2查看 32关注 0票数 0

我正试图在r工作室制作一篇列示日期的财政年度的专栏。

我现在有2列,一列显示月份(作为一个数字),一列显示年份。

我希望第三栏显示财政年度,选出:

如果月份<=为3年&年份=2017年,那么金融year= FY1617

如果月份为>= 4&年份=2017年,那么金融year= FY1718

等等

这似乎是一件简单的事情,但我尝试了很多事情,但无法解决!

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2021-01-14 10:46:31

这个怎么样:

代码语言:javascript
复制
library(dplyr)

df2 <- df %>%
  mutate(
    fy = ifelse(
      month <= 3,
      paste0("FY", year-2001, year-2000),
      paste0("FY", year-2000, year-1999)
    )
  )

这将是一个非常简单的解决方案.

票数 1
EN

Stack Overflow用户

发布于 2021-01-14 10:40:38

也许这不是最优雅的方式,但它应该去。

代码语言:javascript
复制
df <- data.frame(month = c(1, 4, 2, 6, 3, 9, 12, 11, 6, 8, 7, 10), 
                 year = c(2018, 2018, 2017, 2019, 2018, 2017, 2018, 2018, 2018, 2019, 2017, 2018))

v_fy <- c()
for (i in 1:nrow(df)) {
  if (df$month[i] < 4) {
    fy <- paste("FY", substr(df$year[i]-1, 3, 4), substr(df$year[i], 3, 4), sep = "")
    v_fy <- c(v_fy, fy)
  } else {
    fy <- paste("FY", substr(df$year[i], 3, 4), substr(df$year[i] + 1, 3, 4), sep = "")
  v_fy <- c(v_fy, fy)
}
  
}

df$fy <- v_fy
票数 -1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/65717119

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档