R语言中通过匹配索引和年份填充空向量的向量化实现方法
R 向量化填充日期向量实现方案
基础R原生实现(无额外依赖)
直接通过字符串截取提取年份计算对应索引,一次向量化赋值即可完成需求:
# 从日期字符串中提取4位年份,计算匹配的向量索引 idx <- as.integer(substr(vt, 1, 4)) - 2000 # 向量化赋值填充 vv[idx] <- vt
执行后打印vv即可得到你预期的输出:
[1] NA NA NA "2004-02" NA "2006-03" "2007-07" NA NA NA NA NA NA NA NA NA [17] NA NA
可选:lubridate 包实现(适合复杂日期处理场景)
如果你已经在项目中使用lubridate处理日期类数据,可以用更语义化的方式提取年份:
library(lubridate) # 先将字符串转成年月日期格式,再提取年份计算索引 idx <- year(ym(vt)) - 2000 vv[idx] <- vt
注意:如果你的18年数据起始年份不是2001年,只需要调整索引计算时的减数即可,比如起始年份为2000年时,将
- 2000改为- 1999即可。
内容的提问来源于stack exchange,提问作者gis.rajan
相关产品推荐
相关产品推荐

