我的数据框如下:
Me.Controls(fldName).ForeColor = vbRed
我想创建一个像年份这样的列
Name Year
a 2010
b 2010
c 2011
d 2011
e 2012
答案 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))