我有几个xts输出对象,它们可以包含不同的“值”类。
所有xts对象都包含具有相同长度的值类import requests
import kerberos
import requests_kerberos
host = '10.200.30.212:8998'
auth = requests_kerberos.HTTPKerberosAuth(mutual_authentication=requests_kerberos.REQUIRED, force_preemptive=True)
headers = {'Content-Type': 'application/json'}
和datetime
。
一些xts对象包含另一个值类spot
例如具有par
值的xts对象:(值是:“ datetime”,“ spot”和“ par”)
par
我想导出$datetime $spot
2017-10-02 09:05:00 4.503936e-04
2017-10-02 09:10:00 4.799895e-04
2017-10-02 09:15:00 5.181447e-04
2017-10-02 09:20:00 5.734970e-04
2017-10-02 09:25:00 5.637900e-04
2017-10-02 09:30:00 4.684099e-04
2017-10-02 09:35:00 5.149570e-04
2017-10-02 09:40:00 5.459784e-04
$par
sigma sigma_mu sigma_h sigma_k phi rho mu1 mu2 delta_c1
0.0001963601 0.1727417926 0.0070247195 1.2313740300 0.1940041110 0.2426273212 0.6050628200 0.1732629813 0.3489579734
delta_c2 delta_c3 delta_c4 delta_c5 delta_s1 delta_s2 delta_s3 delta_s4 delta_s5
-1.5338494995 1.0146674063 0.8648589185 0.2488922309 -1.3362789351 1.1684672029 2.0240062847 0.2421184159 -0.4020884885
和datetime
的值。
我使用以下方法将xts对象另存为csv。
spot
其中vol {i}是xts对象。
对于不包含值类for (n in c("vol1", "vol2", "vol3", "vol4", "vol5", "vol6", "vol7", "vol8")) {
v = get(n)
myFile <- paste0("Vola_Est", "_", n, ".csv")
write.zoo(as.xts(do.call(rbind, unname(v))), file=myFile, sep=",")
}
的那些对象,此方法很好用。我猜这是因为在xts对象中呈现数据的方式存在“结构性中断”。
在下面找到产生输入数据的示例代码
par
答案 0 :(得分:1)
找到了解决方案。无法识别xts对象中的值类可以像数据框中的列那样调用。
使用以下循环将特定内容从xts导出到csv。
for (n in c("vol1", "vol2", "vol3", "vol4", "vol5", "vol6", "vol7", "vol8")) {
v = get(n)
extr <- v[j = 'spot']
vola <- as.data.frame(extr)
myfile <- paste("Vola_Est_1Min_",n,".csv", sep="")
write.csv(vola, myfile)
}