在R中将日期从y-m-d更改为m / d / y格式

时间:2015-08-03 23:57:21

标签: r

我正在尝试将此2008-01-01转换为R中的1/1/2008。我已尝试as.Date(abc,'%m/%d/%y')但它不起作用......相反,我得到了一堆NA。

有什么想法吗?

2 个答案:

答案 0 :(得分:2)

我假设 var isDescendant = function(desc, root) { return !!desc && (desc === root || isDecendant(desc.parentNode, root)); }; var onremove = function(element, callback) { var observer = new MutationObserver(function(mutations) { _.forEach(mutations, function(mutation) { _.forEach(mutation.removedNodes, function(removed) { if (isDescendant(element, removed)) { callback(); // allow garbage collection observer.disconnect(); observer = undefined; } }); }); }); observer.observe(document, { childList: true, subtree: true }); }; 是一个字符串,并且您希望2008-01-01也是一个字符串。

您可以使用1/1/2008执行此操作,但可能有更好的解决方案。如果你真的不希望输出中没有零(而不是format()),那么我认为01/01/2008不会对你有所帮助。

format()

答案 1 :(得分:1)

由于您的输入日期是ISO 8601格式,您可以直接在其上调用as.Date()以获取日期分类对象,然后可以使用format()对其进行字符串化格式可使用格式说明符here指定。

d <- '2008-01-01';
format(as.Date(d),'%m/%d/%Y');
## [1] "01/01/2008"

如果您真的不想要那些领先的零,那么您必须使用gsub()自行剥离它们:

gsub('\\b0+','',format(as.Date(d),'%m/%d/%Y'));
## [1] "1/1/2008"