从SAS转移日期数据转换为R(transfer date data from SAS into R)

2019-06-26 01:57发布

这是很奇怪的问这个问题,我应用sas7数据集为R.我的一个变量是VISIT_DATE

现在它看起来像这样,我想知道在那里我可以改变他们回到MM-DD-YYYY,因为我需要排除的数据是低于MDY(2010年8月1日)。

> chris$visit_date
  [1] 17077 17091 17105 17119 17133 17069 17083 17097 17111 17125 17080 17094 17108
 [14] 17122 17136 17098 17112 17210 17224 17238 17252 17266 17247 17261 17254 17268
 [27] 17282 17296 17324 17237 17251 17265 17279 17293 17329 17343 17357 17385 17413
 [40] 17259 17273 17287 17301 17315 17328 17342 17356 17370 17384 17335 17349 17377
 [53] 17391 17405 17331 17345 17359 17373 17387 17435 17449 17463 17477 17505 17336
 [66] 17364 17378 17392 17406 17352 17366 17380 17394 17408 17427 17441 17469 17483
 [79] 17497 17440 17454 17468 17482 17496 17434 17448 17462 17476 17490 17419 17433
 [92] 17447 17461 17475 17518 17560 17574 17588 17616 17653 17667 17681 17695 17709
[105] 17644 17658 17686 17700 17728 17755 17769 17783 17811 17825 17825 17610 17624
[118] 17638 17652 17666 18072 18114 18127 18155 18169 17651 17665 17680 17693 17707
[131] 17657 17671 17685 17699 17659 17673 17687 17701 17715 17646 17660 17674 17688
[144] 17702 17721 17735 17749 17763 17770 17734 17748 17762 17790 17861 17736 17750
[157] 17764 17778 17792 17751 17765 17779 17793 17807 17742 17756 17770 17784 17798
[170] 17772 17757 17771 17785 17799 17813 17777 17791 17819 17833 17854 17923 17937
[183] 17965 17979 17993 17825 17839 17853 17867 17909 17832 17846 17860 17874 17888
[196] 17919 17933 17961 17975 17989 17960 17974 17988 18002 18016 18183 18211 18225
[209] 18239 18253 17931 17945 17959 17973 17987 17940 17954 17968 17982 17996 17966
[222] 17980 17994 18022 18036 18021 18035 18049 18063 18091 18050 18064 18078 18092
[235] 18106 18045 18059 18073 18087 18115 18024 18038 18052 18066 18080 18056 18070
[248] 18084 18098 18112 18107 18121 18135 18149 18163 18105 18119 18133 18161 18175
[261] 18143 18171 18185 18199 18213 18203 18246 18274 18288 18302 18316 18248 18276
[274] 18290 18304 18318 18310 18324 18338 18352 18366 18315 18343 18357 18364 18378
[287] 18350 18364 18378 18406 18420 18337 18351 18365 18379 18393 18374 18388 18402
[300] 18430 18472 18344 18358 18386 18400 18414 18353 18381 18395 18409 18423 18387
[313] 18415 18429 18443 18450 18408 18422 18436 18443 18464 18430 18437 18457 18464
[326] 18471 18427 18434 18441 18455 18462 18428 18442 18456 18463 18470

谢谢

Answer 1:

这些“日期”显然使用不同产地/比典型的POSIX标准,将与这个转换工作所抵消。 R通常使用YYYY-MM-DD格式

as.Date(ddd, origin="1970-01-01")

> head( as.Date(ddd, origin="1970-01-01") )
[1] "2016-10-03" "2016-10-17" "2016-10-31" "2016-11-14" "2016-11-28" "2016-09-25"

所以,你需要建立正确的起源。 如果是1960年1月1日,那么所有这些日期是2010年8月1日相比更大。

> sum( as.Date(ddd, origin="1960-01-01") >= as.Date("2010-08-01") )
[1] 0
> sum( as.Date(ddd, origin="1960-01-01") < as.Date("2010-08-01") )
[1] 336


文章来源: transfer date data from SAS into R
标签: r date import sas