Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/r/66.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将日期时间分配转换为数字[XML]_R_Xml_Datetime - Fatal编程技术网

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

R将日期时间分配转换为数字[XML],r,xml,datetime,R,Xml,Datetime,我一直在尝试创建一个XML。为此,我使用R中的库 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存储为datetime,而是在内部将其转换为数值,然后

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

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存储为datetime,而是在内部将其转换为数值,然后我得到输出为datetime

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

我尝试过使用lubridate的ymd()函数转换它,如.posixct()、as.date()。所有这些都保持了datetime格式的正确性,但一旦我将其分配给某个对象,它就会更改为数值

 > 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"/>
>u
>“2017-01-21 00:00:05 CST”
>添加属性(节点1,xyz=u)

解决方案非常简单,您输入了一些小错误。您使用了
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>
>top=newXMLNode(“A”)
>newXMLNode(“Node1”,attrs=c(id=123,dt=“2017-01-21 00:00:05”),parent=top)
>顶

希望它对你有用

在执行赋值之前,将日期时间格式化为字符串<代码>strftime(u,“%Y-%m-%d%H:%m:%S%Z”)请按照我的答案进行检查。希望它消除你的疑虑,为你工作@太棒了。谢谢。我不知道我怎么会错过这个。谢谢Saurabh13的回复。但问题发生在datetime对象的赋值过程中。我应该在赋值之前将datetime对象转换为字符串@普西多姆正确地指出了这一点。