如何删除r中数字变量的某些数字

how to remove certain digits of a numeric variable in r

我创建了df1

  year gvkey      ipo
1 1996  1004 19880101
2 1997  1004 19880101
3 1998  1004 19880101
4 1999  1004 19880101
5 2000  1004 19880101
6 2001  1004 19880101
....


year = numeric

gvkey (id) = numeric

ipo = numeric

我想把df1改成这样,这样我就可以计算公司年龄了:

  year gvkey ipo
1 1996  1004 1988
2 1997  1004 1988
3 1998  1004 1988
4 1999  1004 1988
5 2000  1004 1988
6 2001  1004 1988
...

我发现 post 有人从 character 变量中删除了某些部分。我试图将 ipo 更改为 character 但随后我的 df1 变成了一个值,当我再次尝试将该值更改为数据框时,其他变量 yeargvkey,都不见了。

是否也可以只删除数字变量的某些数字?

非常感谢!!!

df1 %>%
  mutate(ipo = as.numeric(substr(ipo, 1, 4)))

  year gvkey  ipo
1 1996  1004 1988
2 1997  1004 1988
3 1998  1004 1988
4 1999  1004 1988
5 2000  1004 1988
6 2001  1004 1988

另一种选择是sub

df1$ipo <- as.numeric(sub('^(....).*', '\1', df1$ipo))