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 字符2位年份转换为仅年份_R_Date_Character_2 Digit Year - Fatal编程技术网

R 字符2位年份转换为仅年份

R 字符2位年份转换为仅年份,r,date,character,2-digit-year,R,Date,Character,2 Digit Year,使用R 有大量的临床健康数据可供使用,但日期很奇怪 最有问题的是2数字年/半年,如98/2,意思是在1998年7月1日 我已将该列拆分为两个字符列,例如98和2,但现在需要将2数字年份字符串转换为实际年份 我尝试将as.Date(data$variable,format=“%Y”)转换为0098作为年份,而不是1998,我还随意添加了今天的月份和年份(实际数据没有月份或日期) 如0098-06-11 我怎样才能得到1998年呢?不优雅。但使用lubridate和as.Date的组合,你可以得到它

使用R

有大量的临床健康数据可供使用,但日期很奇怪

最有问题的是
2数字年/半年
,如
98/2
,意思是在
1998年
7月1日

我已将该列拆分为两个字符列,例如
98
2
,但现在需要将
2
数字年份字符串转换为实际年份

我尝试将
as.Date(data$variable,format=“%Y”)
转换为
0098
作为年份,而不是
1998
,我还随意添加了今天的月份和年份(实际数据没有月份或日期)

0098-06-11


我怎样才能得到1998年呢?

不优雅。但使用lubridate和as.Date的组合,你可以得到它

library(lubridate)
data <- data.frame(variable = c(95, 96, 97,98,99), date=c(1,2,3,4,5))
data$variableUpdated <- year(as.Date(as.character(data$variable), format="%y"))
库(lubridate)

数据都是90年代(20世纪)的吗?不,不幸的是它也有2000年代,好吧,那么我们怎么知道哪个属于哪个呢?比如说,你如何区分1901年和2001年?直到20世纪80年代,这种疾病的检测才开始。这可能是相关的。我很抱歉,我使用R仅仅几个星期。您能解释一下如何将其分配给变量吗?我一直在这样做:data$variableUpdated我尝试了我上面写的代码,它主要是NAs,并用今天的日期(数据集中不存在)替换了一些日期。我做错了什么?是的,你是对的。添加as.character以将其转换为字符串<代码>数据$VariableUpdate
data$variableUpdated <- format(as.Date(as.character(data$variable), format="%y"),"%Y")