R将日期时间分配转换为数字[XML]

时间:2017-02-04 01:02:32

标签: r xml datetime

我一直在尝试创建XML。为此,我在R中使用XML库。

top = newXMLNode("A")
newXMLnode("Node1",attrs=c(id=123,dt="2017-01-21 00:00:05"),parent=top)

这应该创建一个XML

<A>
     <Node1 id="123" dt="2017-01-21 00:00:05"/> 
</A>

但是发生了什么,而不是将dt存储为日期时间,R在内部将其转换为数字,然后输出为

 <Node1 id="123" dt="1485043200"/>

我尝试使用lubridate的ymd()函数转换它,如.posixct(),as.date()。全部这样可以保持日期时间格式正确,但只要我将其分配给某些内容,就会更改为数字。

 > u <- as.POSIXct("2017-01-21 00:00:05",origin="1970-01-01")
 > u
 > "2017-01-21 00:00:05 CST"
 > addAttributes(Node1,xyz=u)
  <Node1 id="123" dt="1485043200" xyz="1485043200"/>

1 个答案:

答案 0 :(得分:0)

解决方案非常简单,你做了小错字。您使用newXMLnode代替newXMLNode。请仔细阅读以下R代码段:

> top = newXMLNode("A")
> newXMLNode("Node1",attrs=c(id=123,dt="2017-01-21  00:00:05"),parent=top)
<Node1 id="123" dt="2017-01-21 00:00:05"/> 
> top
<A>
<Node1 id="123" dt="2017-01-21 00:00:05"/>
</A>

希望它适合你!