保存/导出输出列表以供将来在 R 中直接使用?

Posted

技术标签:

【中文标题】保存/导出输出列表以供将来在 R 中直接使用?【英文标题】:Saving/exporting a list of output for direct future use in R? 【发布时间】:2017-09-15 17:13:38 【问题描述】:

我正在使用 R 进行模拟,需要一段时间才能运行。现在,这个模拟只返回原始输出。我还在研究一个函数,该函数可以独立于模拟本身来操作和汇总这个原始输出。

现在,当我开始一个新的 R 会话时(有时我需要重新启动我的计算机),我必须从我的模拟中创建新的输出,以便继续处理我单独的汇总函数。我想知道是否有办法导出我的模拟输出,以便每次开始新的 R 会话时都可以引用它?

我熟悉write.csv,但我只将它用于单个 dfs 或矩阵。我的模拟输出是一个由数据框组成的列表。我试过用谷歌搜索,但我不确定如何导出这个输出列表,以便我可以简单地将它读入 R 以供将来使用。

这是我的模拟输出的示例:

$`1_1`
$`1_1`[[1]]
         mean     sd MC_error val2.5pc median val97.5pc start sample
RR[1]  0.7019 0.2361 0.004283   0.3238 0.6754    1.2360  1001   4000
RR[2]  0.8272 0.2573 0.004271   0.4072 0.7981    1.3980  1001   4000
RR[3]  2.1340 0.6723 0.012830   1.0910 2.0320    3.7000  1001   4000
RR[4]  0.9561 0.2975 0.005175   0.4807 0.9185    1.6460  1001   4000
RR[5]  1.0240 0.3072 0.005411   0.5300 0.9912    1.7080  1001   4000
RR[6]  1.5390 0.4806 0.008306   0.7824 1.4810    2.6890  1001   4000
RR[7]  0.9261 0.2895 0.004738   0.4531 0.8941    1.5750  1001   4000
RR[8]  2.0830 0.5898 0.011580   1.1190 2.0080    3.4470  1001   4000
RR[9]  0.9283 0.2938 0.004105   0.4571 0.8954    1.6020  1001   4000
RR[10] 0.8101 0.2621 0.004615   0.3779 0.7842    1.3950  1001   4000
RR[11] 0.6641 0.2096 0.003801   0.3161 0.6428    1.1400  1001   4000
RR[12] 1.2790 0.3620 0.005807   0.6876 1.2410    2.1130  1001   4000
RR[13] 1.5350 0.5261 0.008755   0.7415 1.4590    2.7700  1001   4000
RR[14] 3.0160 1.1210 0.025830   1.3570 2.8270    5.6150  1001   4000
RR[15] 1.3960 0.4376 0.006281   0.6850 1.3500    2.3730  1001   4000
RR[16] 0.8216 0.2668 0.004341   0.3825 0.7924    1.4260  1001   4000
RR[17] 1.1150 0.3155 0.004257   0.5949 1.0820    1.8100  1001   4000
RR[18] 1.0240 0.3180 0.005216   0.5246 0.9866    1.7470  1001   4000
RR[19] 1.3870 0.3618 0.005552   0.7793 1.3550    2.1780  1001   4000
RR[20] 1.0360 0.3169 0.005407   0.5292 1.0020    1.7410  1001   4000
RR[21] 1.1380 0.3255 0.004510   0.6100 1.1060    1.8590  1001   4000
RR[22] 1.2520 0.3837 0.005944   0.6375 1.2030    2.1350  1001   4000
RR[23] 1.0130 0.2606 0.004266   0.5661 0.9903    1.5970  1001   4000
RR[24] 0.9086 0.2891 0.004517   0.4366 0.8716    1.5670  1001   4000
RR[25] 1.3420 0.3837 0.006165   0.7141 1.3040    2.2070  1001   4000
RR[26] 0.9877 0.2872 0.004642   0.5139 0.9541    1.6260  1001   4000
RR[27] 0.9767 0.2295 0.003219   0.5909 0.9524    1.4800  1001   4000
RR[28] 0.6554 0.1892 0.003494   0.3407 0.6351    1.0690  1001   4000
RR[29] 1.1270 0.3399 0.004825   0.5813 1.0850    1.9360  1001   4000
RR[30] 1.1600 0.2785 0.004405   0.6970 1.1360    1.7730  1001   4000
RR[31] 1.1620 0.3096 0.004316   0.6481 1.1320    1.8790  1001   4000
RR[32] 0.9623 0.3105 0.004872   0.4758 0.9279    1.6850  1001   4000
RR[33] 1.0850 0.3242 0.005618   0.5678 1.0480    1.8170  1001   4000
RR[34] 1.1970 0.3093 0.004674   0.6799 1.1730    1.8770  1001   4000
RR[35] 0.9759 0.2696 0.003909   0.5325 0.9473    1.5920  1001   4000
RR[36] 1.0150 0.2836 0.004981   0.5353 0.9851    1.6600  1001   4000
RR[37] 0.5347 0.1565 0.003182   0.2735 0.5193    0.8818  1001   4000
RR[38] 0.4884 0.1536 0.003391   0.2371 0.4724    0.8368  1001   4000
RR[39] 0.6822 0.1711 0.002677   0.3878 0.6670    1.0590  1001   4000
RR[40] 0.9158 0.2704 0.003893   0.4786 0.8891    1.5380  1001   4000
RR[41] 1.5450 0.4564 0.006619   0.8101 1.4900    2.5720  1001   4000
RR[42] 0.9248 0.2964 0.004344   0.4559 0.8896    1.6150  1001   4000
RR[43] 0.5465 0.1764 0.003420   0.2596 0.5322    0.9464  1001   4000
RR[44] 0.9240 0.2930 0.004803   0.4516 0.8893    1.5960  1001   4000

$`1_1`[[2]]
         mean     sd MC_error val2.5pc median val97.5pc start sample
RR[1]  0.8063 0.2904 0.004716   0.3603 0.7689    1.4900  1001   4000
RR[2]  0.5037 0.2004 0.003569   0.1930 0.4809    0.9754  1001   4000
RR[3]  1.9320 0.6532 0.011190   0.8829 1.8500    3.4980  1001   4000
RR[4]  1.0250 0.3362 0.006026   0.4891 0.9846    1.7930  1001   4000
RR[5]  0.5143 0.2125 0.004398   0.1936 0.4836    1.0200  1001   4000
RR[6]  1.6060 0.5191 0.008263   0.7718 1.5490    2.7840  1001   4000
RR[7]  0.7761 0.2914 0.004174   0.3291 0.7373    1.4710  1001   4000
RR[8]  1.2780 0.4432 0.006818   0.5752 1.2210    2.3230  1001   4000
RR[9]  0.7724 0.2846 0.004568   0.3221 0.7460    1.4220  1001   4000
RR[10] 0.9518 0.3186 0.004953   0.4447 0.9199    1.6910  1001   4000
RR[11] 0.4497 0.1785 0.003439   0.1721 0.4268    0.8686  1001   4000
RR[12] 0.6595 0.2587 0.004312   0.2661 0.6256    1.2830  1001   4000
RR[13] 1.2280 0.5014 0.008534   0.4827 1.1470    2.4020  1001   4000
RR[14] 3.2500 1.2120 0.022290   1.3560 3.0580    6.1720  1001   4000
RR[15] 1.4540 0.4913 0.008027   0.6922 1.3820    2.5760  1001   4000
RR[16] 0.8626 0.3058 0.004241   0.3898 0.8212    1.5680  1001   4000
RR[17] 1.2030 0.3592 0.006269   0.6188 1.1670    2.0110  1001   4000
RR[18] 1.4940 0.4459 0.007102   0.7733 1.4400    2.5210  1001   4000
RR[19] 0.9936 0.3191 0.004616   0.4789 0.9538    1.7250  1001   4000
RR[20] 0.5828 0.2432 0.004339   0.2096 0.5501    1.1560  1001   4000
RR[21] 0.9172 0.3047 0.005035   0.4227 0.8818    1.6240  1001   4000
RR[22] 0.6529 0.2804 0.004139   0.2383 0.6096    1.3180  1001   4000
RR[23] 0.9142 0.2679 0.004130   0.4583 0.8893    1.5010  1001   4000
RR[24] 0.9641 0.3227 0.005514   0.4446 0.9264    1.7310  1001   4000
RR[25] 1.3690 0.4135 0.007314   0.6912 1.3190    2.2920  1001   4000
RR[26] 0.6732 0.2451 0.004072   0.2900 0.6404    1.2420  1001   4000
RR[27] 0.6030 0.1840 0.003017   0.2999 0.5827    1.0140  1001   4000
RR[28] 0.6519 0.2004 0.003232   0.3208 0.6310    1.0930  1001   4000
RR[29] 0.6803 0.2744 0.004725   0.2670 0.6403    1.3360  1001   4000
RR[30] 0.5276 0.1847 0.003239   0.2281 0.5076    0.9603  1001   4000
RR[31] 0.9763 0.3013 0.004561   0.4949 0.9466    1.6600  1001   4000
RR[32] 0.5934 0.2481 0.004518   0.2248 0.5596    1.1930  1001   4000
RR[33] 0.6487 0.2554 0.003746   0.2561 0.6084    1.2370  1001   4000
RR[34] 0.6916 0.2441 0.004238   0.3093 0.6602    1.2660  1001   4000
RR[35] 0.5388 0.2026 0.003581   0.2221 0.5105    1.0070  1001   4000
RR[36] 1.2720 0.3578 0.005380   0.6866 1.2370    2.0640  1001   4000
RR[37] 0.6141 0.1802 0.002972   0.3166 0.5950    1.0170  1001   4000
RR[38] 0.4088 0.1441 0.002842   0.1808 0.3901    0.7413  1001   4000
RR[39] 0.4162 0.1381 0.002273   0.1924 0.4022    0.7266  1001   4000
RR[40] 0.7893 0.2603 0.004345   0.3673 0.7597    1.3960  1001   4000
RR[41] 1.0440 0.3824 0.005550   0.4523 0.9927    1.9340  1001   4000
RR[42] 0.8632 0.3058 0.004773   0.3853 0.8158    1.5570  1001   4000
RR[43] 0.6449 0.2061 0.002788   0.3070 0.6185    1.1090  1001   4000
RR[44] 1.2230 0.3901 0.006244   0.5960 1.1840    2.1050  1001   4000


$`1_2a`
$`1_2a`[[1]]
         mean     sd MC_error val2.5pc median val97.5pc start sample
RR[1]  0.7409 0.2534 0.005284   0.3335 0.7159    1.3110  1001   4000
RR[2]  0.8294 0.2733 0.004385   0.3956 0.7962    1.4380  1001   4000
RR[3]  2.2790 0.6923 0.013190   1.1700 2.1990    3.8670  1001   4000
RR[4]  0.9933 0.3063 0.004733   0.4860 0.9608    1.6850  1001   4000
RR[5]  1.0880 0.3294 0.005059   0.5551 1.0460    1.8220  1001   4000
RR[6]  1.6260 0.4889 0.008983   0.8362 1.5620    2.7240  1001   4000
RR[7]  0.9308 0.3019 0.004657   0.4370 0.8980    1.6140  1001   4000
RR[8]  2.2260 0.6097 0.012630   1.2230 2.1620    3.5900  1001   4000
RR[9]  0.9662 0.3192 0.005141   0.4570 0.9251    1.7050  1001   4000
RR[10] 0.7817 0.2662 0.004268   0.3584 0.7484    1.3850  1001   4000
RR[11] 0.7007 0.2304 0.004228   0.3317 0.6711    1.2260  1001   4000
RR[12] 1.3510 0.3861 0.006772   0.7165 1.3100    2.2540  1001   4000
RR[13] 1.5120 0.5524 0.009909   0.6730 1.4340    2.8100  1001   4000
RR[14] 3.1230 1.1810 0.030370   1.3740 2.9390    5.9480  1001   4000
RR[15] 1.4980 0.4633 0.008328   0.7570 1.4390    2.5650  1001   4000
RR[16] 0.8205 0.2727 0.004188   0.3815 0.7903    1.4580  1001   4000
RR[17] 1.1660 0.3386 0.006009   0.6054 1.1320    1.9280  1001   4000
RR[18] 1.0840 0.3464 0.006399   0.5181 1.0400    1.8780  1001   4000
etc.....

所以基本上,我只想保留输出的列表结构。

【问题讨论】:

退出 R 时保存 .RData,下次打开 R 时应该保存并加载所有对象。 你能保存工作区,然后加载它,这样对象仍然存在吗? 使用dputdgetdput(mylist, file="myRlist.data"); dget(file="myRlist.data") 使用 saveRDS 函数保存,readRDS 再次高速读回 R 感谢 KyleWeise @Balter。我不知道您可以保存当前 R 会话的工作区。我会检查一下。 【参考方案1】:

使用RDS 格式。

saveRDS(yourList, "yourFile.RDS")

我不建议使用.Rdata,因为它已贬值且难以操作。 RDS 可用于快速保存/加载大型对象。为此,您必须使用 compress 参数。

saveRDS(yourList, "yourFile.RDS", compress = FALSE)
yourList <- readRDS("yourFile.RDS")

【讨论】:

您能否指出.RData 已被弃用的文档?我不知道这一点。【参考方案2】:

选项 1: 您可以保存整个工作区(例如,保存当前在 R 中的所有变量)。你这样做:

save.image("<file_name>.RData")

然后,当你重新打开 R 时,你会运行:

load("<file_name>.RData")

或者,在 RStudio 中,转到会话,您将看到保存和加载工作目录的选项。

如果你只想保存一个对象,你可以这样做:

选项 2: 使用 save(&lt;R object&gt;, file="&lt;file_name&gt;.RData") 保存单个对象,然后使用 load("&lt;file_name&gt;.RData") 重新加载它。

您也可以使用saveRDS(&lt;R object&gt;, file="&lt;file_name&gt;.RData")readRDS("&lt;file_name&gt;.RData")。与saveload 相比,此方法将允许您在将变量读回R 后重命名。

【讨论】:

以上是关于保存/导出输出列表以供将来在 R 中直接使用?的主要内容,如果未能解决你的问题,请参考以下文章

保存 ML 模型以供将来使用

如何通过 Android 在 Paypal 保险库中保存信用卡详细信息以及如何检索它们以供将来使用

保存并使用 TFIDF 矢量化器以供将来的示例使用,然后导致尺寸错误

存储 TfidfVectorizer 以供将来使用

将列表附加到 R 中的列表列表

我应该在哪里保存客户端的 JWT 以供将来请求?