Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/date/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
R 如何更改年份格式_R_Date - Fatal编程技术网

R 如何更改年份格式

R 如何更改年份格式,r,date,R,Date,我的数据框中有一个年份列,格式为财政年度,如2015-16、2016-17等。我想将其更改为仅4位数的年份,以便2015-16变为2016年;2016-17变为2017年,等等。我该怎么做?我们可以使用sub捕获前两位数字,同时保留后两位数字和-,并在替换中指定捕获组的反向引用\\1 as.numeric(sub("^(\\d{2})\\d{2}-", "\\1", v1)) #[1] 2016 2017 或更紧密地匹配后跟-的两个数字,并替换为空白 或

我的数据框中有一个年份列,格式为财政年度,如2015-16、2016-17等。我想将其更改为仅4位数的年份,以便2015-16变为2016年;2016-17变为2017年,等等。我该怎么做?

我们可以使用sub捕获前两位数字,同时保留后两位数字和-,并在替换中指定捕获组的反向引用\\1

as.numeric(sub("^(\\d{2})\\d{2}-", "\\1", v1))
#[1] 2016 2017
或更紧密地匹配后跟-的两个数字,并替换为空白

或者使用substr

注意:所有解决方案都不需要任何外部软件包。此外,它并不隐含地假设总有1年的增量。它可以是如下所示的任何年份范围,并且可以正常工作

v2 <- c("2015-18", "2014-15", "2012-19")
sub("\\d{2}-", "", v2)
#[1] "2018" "2015" "2019"
数据 我们可以使用sub捕获前两位数字,同时保留后两位数字和-,并在替换中指定捕获组的反向引用\\1

as.numeric(sub("^(\\d{2})\\d{2}-", "\\1", v1))
#[1] 2016 2017
或更紧密地匹配后跟-的两个数字,并替换为空白

或者使用substr

注意:所有解决方案都不需要任何外部软件包。此外,它并不隐含地假设总有1年的增量。它可以是如下所示的任何年份范围,并且可以正常工作

v2 <- c("2015-18", "2014-15", "2012-19")
sub("\\d{2}-", "", v2)
#[1] "2018" "2015" "2019"
数据
一个可能的解决办法是

as.numeric(sub('-.*', '', '2015-16')) + 1
#[1] 2016

一个可能的解决办法是

as.numeric(sub('-.*', '', '2015-16')) + 1
#[1] 2016
您可以使用readr中的parse_编号:

parse_number在第一个数字之前或之后删除任何非数字字符。所以在这个例子中,第一个数字之后的所有内容都被删除并变成数字。然后,我们向其中添加1以获得明年的数据。

您可以使用readr提供的解析号:

parse_number在第一个数字之前或之后删除任何非数字字符。所以在这个例子中,第一个数字之后的所有内容都被删除并变成数字。然后,我们在其中添加1,以便在明年获得

x <- c('2015-16', '2016-17')
readr::parse_number(x) + 1
#[1] 2016 2017