【问题标题】:R make index with dayseries as string data?R使用dayeries作为字符串数据制作索引?
【发布时间】:2013-10-23 08:48:00
【问题描述】:

我有一个具有以下特征的字符串数据
c = ("19790102", "19790103", "19790104", "19790105",...).

现在我想为不同的季节(夏、秋、冬、春)做一个索引。我只用了一个月(例如九月)就做到了:

ind_september=which(as.numeric(substr(dayserie[],5,6))==9)

但我不知道如何用几个月的时间来获得季节索引。

有人有想法吗?

【问题讨论】:

  • 也许你在这里找到答案:link

标签: string r indices


【解决方案1】:

使用 Find which season a particular date belongs to ,我巧妙地更改了函数以添加格式参数:

getSeason <- function(DATES,frmt = "%Y%m%d") {
  WS <- as.POSIXct("2012-12-21", format = "%Y-%m-%d") # Winter 
  SE <- as.POSIXct("2012-3-21",  format = "%Y-%m-%d") # Spring 
  SS <- as.POSIXct("2012-6-21",  format = "%Y-%m-%d") # Summer 
  FE <- as.POSIXct("2012-9-21",  format = "%Y-%m-%d") # Autumn 

  # Convert dates from any year to 2012 dates
  d <- strftime(as.POSIXct(DATES, format=frmt),
                format='2012-%m-%d')

  ifelse (d >= WS | d < SE, "Winter",
          ifelse (d >= SE & d < SS, "Spring",
                  ifelse (d >= SS & d < FE, "Summer", "Fall")))
}

dayserie <- c("19790102", "19790103", "19790104", "19790105")
getSeason(dayserie,'%Y%m%d')

"Winter" "Winter" "Winter" "Winter"

【讨论】:

    【解决方案2】:

    您也可以查看seas 包。

    library(seas)
    
    x <- c("19790304", "19790603", "19790903",  "19791205")
    
    x2 <- as.Date(x, format = "%Y%m%d")
    
    # width = "JFM": annual quarterly divisions: JFM, AMJ, JAS, OND
    x3 <- mkseas(x2, width = "JFM")
    x3
    # [1] JFM AMJ JAS OND
    
    # if you wish to rename factor levels
    x4 <- factor(x3, labels = c("winter", "spring", "summer", "autumn"))
    x4
    # [1] winter spring summer autumn
    
    # alternative division
    # width = "DJF": meteorological quarterly divisions: DJF, MAM, JJA, SON
    x3 <- mkseas(x2, width = "DJF")
    x3
    # [1] MAM JJA SON DJF
    
    x4 <- factor(x3, labels = c("winter", "spring", "summer", "autumn"))
    x4
    # [1] spring summer autumn winter
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2011-04-10
      • 1970-01-01
      • 1970-01-01
      • 2016-08-17
      • 2018-04-14
      • 1970-01-01
      • 2016-09-04
      • 1970-01-01
      相关资源
      最近更新 更多