在R中生成XML文件

在R中生成XML文件,xml,r,Xml,R,我目前正在尝试生成一个R脚本,以便能够批量生成xml文件。我试图制作的文件仅在某些方面有所不同,比如种子,我希望种子每次的价值都会发生变化 我也不知道如何在R中编写xml文件。根据我所看到的,xml包没有编写xml文件的方法。我试着把它写成一个txt文件,但我的符号出现了错误,并没有输出,我怎么能把它写出来,这样就不会出现错误呢 文件看起来像这样,ALLCAPS是我想要更改的部分 <modelThree> <name>willamette</name>

我目前正在尝试生成一个R脚本,以便能够批量生成xml文件。我试图制作的文件仅在某些方面有所不同,比如种子,我希望种子每次的价值都会发生变化

我也不知道如何在R中编写xml文件。根据我所看到的,xml包没有编写xml文件的方法。我试着把它写成一个txt文件,但我的符号出现了错误,并没有输出,我怎么能把它写出来,这样就不会出现错误呢

文件看起来像这样,ALLCAPS是我想要更改的部分

<modelThree>
  <name>willamette</name>
  <network load="true">willamette2</network>
  <ocean>9313</ocean>
  <firstNonOcean>2</firstNonOcean>
  <species>SPECIESVECTOR</species>
  <seed>SEED</seed>
  <nyears>30</nyears>
  <output>c:\users\rbrown09\SMURFrun\output\OUTPUTLOCATION</output>
  <ProportionMove>0.25</ProportionMove>
  <HSIperception>HSIPER</HSIperception>
  <HSIimportance>1.0</HSIimportance>
  <Beta>BETAVALUE</Beta>
  <KMultiplier>0.9</KMultiplier>
  <PdoMultipliers>1 1.054752174 1.109504348 1.164256522 1.219008696 1.27376087 1.328513043 1.383265217 1.438017391 1.492769565 1.547521739 1.602273913 1.657026087 1.711778261 1.766530435 1.821282609 1.876034783 1.930786957 1.98553913 2.040291304 2.095043478 2.149795652 2.204547826 2.2593 2.204547826 2.149795652 2.095043478 2.040291304 1.98553913 1.930786957 1.876034783 1.821282609 1.766530435 1.711778261 1.657026087 1.602273913 1.547521739 1.492769565 1.438017391 1.383265217 1.328513043 1.27376087 1.219008696 1.164256522 1.109504348 1.054752174</PdoMultipliers>
  <PdoStartIndex>0</PdoStartIndex>
  </modelThree>

威拉米特
威拉米特2
9313
2.
物种载体
种子
30
c:\users\rbrown09\SMURFrun\output\OUTPUTLOCATION
0.25
希珀
1
贝塔瓦卢
0.9
1 1.054752174 1.109504348 1.164256522 1.219008696 1.27376087 1.328513043 1.383265217 1.438017391 1.492769565 1.547521739 1.602273913 1.657026087 1.711778261 1.766530435 1.821282609 1.876034783 1.930786957 1.98553913 2.040291304 2.095043478 2.149795652 2.204547826 2.2593 2.204547826 2.149795652 2.095043478 2.040291304 1.98553913 1.930786957 1.876034783 1.821282609 1.766530435 1.711778261 1.657026087 1.602273913 1.547521739 1.492769565 1.438017391 1.383265217 1.328513043 1.27376087 1.219008696 1.164256522 1.109504348 1.054752174
0

您可以使用XML包。实际上,我发现创建XML节点的速度非常慢,尤其是当节点数量增加时。我更喜欢使用的一个选项是胡须

'<modelThree>
<name>willamette</name>
<network load="true">willamette2</network>
<ocean>9313</ocean>
<firstNonOcean>2</firstNonOcean>
<species>{{SPECIESVECTOR}}</species>
<seed>{{SEED}}</seed>
<nyears>30</nyears>
<output>c:\users\rbrown09\{{SMURF}}run\output\{{OUTPUTLOCATION}}</output>
<ProportionMove>0.25</ProportionMove>
<HSIperception>{{HSIPER}}</HSIperception>
<HSIimportance>1.0</HSIimportance>
<Beta>{{BETAVALUE}}</Beta>
<KMultiplier>0.9</KMultiplier>
<PdoMultipliers>1 1.054752174 1.109504348 1.164256522 1.219008696 1.27376087 1.328513043 1.383265217 1.438017391 1.492769565 1.547521739 1.602273913 1.657026087 1.711778261 1.766530435 1.821282609 1.876034783 1.930786957 1.98553913 2.040291304 2.095043478 2.149795652 2.204547826 2.2593 2.204547826 2.149795652 2.095043478 2.040291304 1.98553913 1.930786957 1.876034783 1.821282609 1.766530435 1.711778261 1.657026087 1.602273913 1.547521739 1.492769565 1.438017391 1.383265217 1.328513043 1.27376087 1.219008696 1.164256522 1.109504348 1.054752174</PdoMultipliers>
<PdoStartIndex>0</PdoStartIndex>
</modelThree>' -> myTemplate
library(whisker)
myDF <- data.frame(
SPECIESVECTOR = paste("A", "B")
, SEED = "ANOTHER"
, SMURF = "PAPA"
, OUTPUTLOCATION = "VILLAGE"
, HSIPER = 78
, BETAVALUE = 2)
myXML <- whisker.render(myTemplate, myDF)
'
威拉米特
威拉米特2
9313
2.
{{SPECIESVECTOR}}
{{SEED}}
30
c:\users\rbrown09\{{SMURF}}运行\output\{{OUTPUTLOCATION}
0.25
{{HSIPER}}
1
{{BETAVALUE}}
0.9
1 1.054752174 1.109504348 1.164256522 1.219008696 1.27376087 1.328513043 1.383265217 1.438017391 1.492769565 1.547521739 1.602273913 1.657026087 1.711778261 1.766530435 1.821282609 1.876034783 1.930786957 1.98553913 2.040291304 2.095043478 2.149795652 2.204547826 2.2593 2.204547826 2.149795652 2.095043478 2.040291304 1.98553913 1.930786957 1.876034783 1.821282609 1.766530435 1.711778261 1.657026087 1.602273913 1.547521739 1.492769565 1.438017391 1.383265217 1.328513043 1.27376087 1.219008696 1.164256522 1.109504348 1.054752174
0
'->myTemplate
图书馆(须)

myDF您可以使用XML包。实际上,我发现创建XML节点的速度非常慢,尤其是当节点数量增加时。我更喜欢使用的一个选项是胡须

'<modelThree>
<name>willamette</name>
<network load="true">willamette2</network>
<ocean>9313</ocean>
<firstNonOcean>2</firstNonOcean>
<species>{{SPECIESVECTOR}}</species>
<seed>{{SEED}}</seed>
<nyears>30</nyears>
<output>c:\users\rbrown09\{{SMURF}}run\output\{{OUTPUTLOCATION}}</output>
<ProportionMove>0.25</ProportionMove>
<HSIperception>{{HSIPER}}</HSIperception>
<HSIimportance>1.0</HSIimportance>
<Beta>{{BETAVALUE}}</Beta>
<KMultiplier>0.9</KMultiplier>
<PdoMultipliers>1 1.054752174 1.109504348 1.164256522 1.219008696 1.27376087 1.328513043 1.383265217 1.438017391 1.492769565 1.547521739 1.602273913 1.657026087 1.711778261 1.766530435 1.821282609 1.876034783 1.930786957 1.98553913 2.040291304 2.095043478 2.149795652 2.204547826 2.2593 2.204547826 2.149795652 2.095043478 2.040291304 1.98553913 1.930786957 1.876034783 1.821282609 1.766530435 1.711778261 1.657026087 1.602273913 1.547521739 1.492769565 1.438017391 1.383265217 1.328513043 1.27376087 1.219008696 1.164256522 1.109504348 1.054752174</PdoMultipliers>
<PdoStartIndex>0</PdoStartIndex>
</modelThree>' -> myTemplate
library(whisker)
myDF <- data.frame(
SPECIESVECTOR = paste("A", "B")
, SEED = "ANOTHER"
, SMURF = "PAPA"
, OUTPUTLOCATION = "VILLAGE"
, HSIPER = 78
, BETAVALUE = 2)
myXML <- whisker.render(myTemplate, myDF)
'
威拉米特
威拉米特2
9313
2.
{{SPECIESVECTOR}}
{{SEED}}
30
c:\users\rbrown09\{{SMURF}}运行\output\{{OUTPUTLOCATION}
0.25
{{HSIPER}}
1
{{BETAVALUE}}
0.9
1 1.054752174 1.109504348 1.164256522 1.219008696 1.27376087 1.328513043 1.383265217 1.438017391 1.492769565 1.547521739 1.602273913 1.657026087 1.711778261 1.766530435 1.821282609 1.876034783 1.930786957 1.98553913 2.040291304 2.095043478 2.149795652 2.204547826 2.2593 2.204547826 2.149795652 2.095043478 2.040291304 1.98553913 1.930786957 1.876034783 1.821282609 1.766530435 1.711778261 1.657026087 1.602273913 1.547521739 1.492769565 1.438017391 1.383265217 1.328513043 1.27376087 1.219008696 1.164256522 1.109504348 1.054752174
0
'->myTemplate
图书馆(须)

myDF您可以使用XML包。实际上,我发现创建XML节点的速度非常慢,尤其是当节点数量增加时。我更喜欢使用的一个选项是胡须

'<modelThree>
<name>willamette</name>
<network load="true">willamette2</network>
<ocean>9313</ocean>
<firstNonOcean>2</firstNonOcean>
<species>{{SPECIESVECTOR}}</species>
<seed>{{SEED}}</seed>
<nyears>30</nyears>
<output>c:\users\rbrown09\{{SMURF}}run\output\{{OUTPUTLOCATION}}</output>
<ProportionMove>0.25</ProportionMove>
<HSIperception>{{HSIPER}}</HSIperception>
<HSIimportance>1.0</HSIimportance>
<Beta>{{BETAVALUE}}</Beta>
<KMultiplier>0.9</KMultiplier>
<PdoMultipliers>1 1.054752174 1.109504348 1.164256522 1.219008696 1.27376087 1.328513043 1.383265217 1.438017391 1.492769565 1.547521739 1.602273913 1.657026087 1.711778261 1.766530435 1.821282609 1.876034783 1.930786957 1.98553913 2.040291304 2.095043478 2.149795652 2.204547826 2.2593 2.204547826 2.149795652 2.095043478 2.040291304 1.98553913 1.930786957 1.876034783 1.821282609 1.766530435 1.711778261 1.657026087 1.602273913 1.547521739 1.492769565 1.438017391 1.383265217 1.328513043 1.27376087 1.219008696 1.164256522 1.109504348 1.054752174</PdoMultipliers>
<PdoStartIndex>0</PdoStartIndex>
</modelThree>' -> myTemplate
library(whisker)
myDF <- data.frame(
SPECIESVECTOR = paste("A", "B")
, SEED = "ANOTHER"
, SMURF = "PAPA"
, OUTPUTLOCATION = "VILLAGE"
, HSIPER = 78
, BETAVALUE = 2)
myXML <- whisker.render(myTemplate, myDF)
'
威拉米特
威拉米特2
9313
2.
{{SPECIESVECTOR}}
{{SEED}}
30
c:\users\rbrown09\{{SMURF}}运行\output\{{OUTPUTLOCATION}
0.25
{{HSIPER}}
1
{{BETAVALUE}}
0.9
1 1.054752174 1.109504348 1.164256522 1.219008696 1.27376087 1.328513043 1.383265217 1.438017391 1.492769565 1.547521739 1.602273913 1.657026087 1.711778261 1.766530435 1.821282609 1.876034783 1.930786957 1.98553913 2.040291304 2.095043478 2.149795652 2.204547826 2.2593 2.204547826 2.149795652 2.095043478 2.040291304 1.98553913 1.930786957 1.876034783 1.821282609 1.766530435 1.711778261 1.657026087 1.602273913 1.547521739 1.492769565 1.438017391 1.383265217 1.328513043 1.27376087 1.219008696 1.164256522 1.109504348 1.054752174
0
'->myTemplate
图书馆(须)

myDF您可以使用XML包。实际上,我发现创建XML节点的速度非常慢,尤其是当节点数量增加时。我更喜欢使用的一个选项是胡须

'<modelThree>
<name>willamette</name>
<network load="true">willamette2</network>
<ocean>9313</ocean>
<firstNonOcean>2</firstNonOcean>
<species>{{SPECIESVECTOR}}</species>
<seed>{{SEED}}</seed>
<nyears>30</nyears>
<output>c:\users\rbrown09\{{SMURF}}run\output\{{OUTPUTLOCATION}}</output>
<ProportionMove>0.25</ProportionMove>
<HSIperception>{{HSIPER}}</HSIperception>
<HSIimportance>1.0</HSIimportance>
<Beta>{{BETAVALUE}}</Beta>
<KMultiplier>0.9</KMultiplier>
<PdoMultipliers>1 1.054752174 1.109504348 1.164256522 1.219008696 1.27376087 1.328513043 1.383265217 1.438017391 1.492769565 1.547521739 1.602273913 1.657026087 1.711778261 1.766530435 1.821282609 1.876034783 1.930786957 1.98553913 2.040291304 2.095043478 2.149795652 2.204547826 2.2593 2.204547826 2.149795652 2.095043478 2.040291304 1.98553913 1.930786957 1.876034783 1.821282609 1.766530435 1.711778261 1.657026087 1.602273913 1.547521739 1.492769565 1.438017391 1.383265217 1.328513043 1.27376087 1.219008696 1.164256522 1.109504348 1.054752174</PdoMultipliers>
<PdoStartIndex>0</PdoStartIndex>
</modelThree>' -> myTemplate
library(whisker)
myDF <- data.frame(
SPECIESVECTOR = paste("A", "B")
, SEED = "ANOTHER"
, SMURF = "PAPA"
, OUTPUTLOCATION = "VILLAGE"
, HSIPER = 78
, BETAVALUE = 2)
myXML <- whisker.render(myTemplate, myDF)
'
威拉米特
威拉米特2
9313
2.
{{SPECIESVECTOR}}
{{SEED}}
30
c:\users\rbrown09\{{SMURF}}运行\output\{{OUTPUTLOCATION}
0.25
{{HSIPER}}
1
{{BETAVALUE}}
0.9
1 1.054752174 1.109504348 1.164256522 1.219008696 1.27376087 1.328513043 1.383265217 1.438017391 1.492769565 1.547521739 1.602273913 1.657026087 1.711778261 1.766530435 1.821282609 1.876034783 1.930786957 1.98553913 2.040291304 2.095043478 2.149795652 2.204547826 2.2593 2.204547826 2.149795652 2.095043478 2.040291304 1.98553913 1.930786957 1.876034783 1.821282609 1.766530435 1.711778261 1.657026087 1.602273913 1.547521739 1.492769565 1.438017391 1.383265217 1.328513043 1.27376087 1.219008696 1.164256522 1.109504348 1.054752174
0
'->myTemplate
图书馆(须)

myDF我希望能够将此代码生成为xml文件,并粘贴适当的值。再仔细看一下
ls(“package:XML,all=TRUE)
,特别是
?xmlHashTree
,一种非常简单的方法就是用
readLines
读取行,并在重写之前进行必要的更改。另外,我认为XML包应该有一个
saveXML
函数。我希望能够将此代码生成为XML文件,并粘贴适当的值。XML包有许多函数可以帮助编写XML。再仔细看一下
ls(“package:XML,all=TRUE)
,特别是
?xmlHashTree
,一种非常简单的方法就是用
readLines
读取行,并在重写之前进行必要的更改。另外,我认为XML包应该有一个
saveXML
函数,我希望能够生成这个c