2017-02-04 5 views
0

私はXMLを作成しようとしています。これを行うために、私はXMLライブラリを使用していますR.Rは日時の代入を数値に変換します[XML]

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

これは

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

としてXMLを作成しかし、何happenningだが代わりにdatetime型としてDTを格納するのであるべきで、Rは、内部的に数値に変換され、私はlubridateのYMD()関数で、as.posixct()、as.date()を使用して、それを変換しようとしている

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

として出力を取得します。 Allこれは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"/> 
+2

format datetimeを代入する前に文字列として指定します。 'strftime(u、%Y-%m-%d%H:%M:%S%Z)' – Psidom

+0

私の答えが間に合います。あなたの疑いを晴らし、あなたのために働くことを願っています! –

+0

[これを世話してください](@stackoverflow.com/help/someone-answers) –

答えて

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> 

希望どおりに動作します。

+0

応答にSaurabh13を感謝します。しかし、この問題は日時オブジェクトの割り当て中に発生していました。私は代入の前にdatetimeオブジェクトを文字列に変換する必要があります。 @Psidomはそれを正しく指摘した。 – ashubhargave

関連する問題