如何在R中提取序数年份

时间:2019-07-10 14:13:29

标签: r time

我的数据框如下:

Me.Controls(fldName).ForeColor = vbRed

我想创建一个像年份这样的列

 Name      Year
  a        2010
  b        2010
  c        2011
  d        2011
  e        2012 

2 个答案:

答案 0 :(得分:1)

喜欢吗?

> d$ordinalyear = d$Year - min(d$Year) + 1
> d
  Name Year ordinalyear
1    a 2010           1
2    b 2010           1
3    c 2011           2
4    d 2011           2
5    e 2012           3

假设“普通年”是指“从我的数据中的第一年开始的年份开始于1”。

答案 1 :(得分:1)

通过定义年份范围内的级别,我们可以转换为因子并返回为数字。

transform(DF, year.o=as.numeric(factor(year, levels=min(year):max(year))))
#             x year year.o
# 1  -0.1270936 2010      1
# 2   1.4348448 2010      1
# 3   0.5876282 2011      2
# 4  -0.5088915 2012      3
# 5   1.3284993 2014      5
# 6   3.1037108 2015      6
# 7  -1.5972415 2016      7
# 8  -0.3736655 2016      7
# 9   1.0019033 2019     10

数据

DF <- structure(list(x = c(-0.127093595434297, 1.43484479335631, 0.58762817447056, 
-0.508891454974585, 1.32849927769338, 3.10371076154511, -1.59724145798092, 
-0.373665500318562, 1.00190327654304, -0.457699175902573), year = c(2010L, 
2010L, 2011L, 2012L, 2014L, 2015L, 2016L, 2016L, 2019L, 2019L
)), class = "data.frame", row.names = c(NA, -10L))