簡體   English   中英

如何在物理RData中直接使用data.frame?

[英]How to directly work with a data.frame in physical RData?

我一定要嗎

1)從物理RData加載data.frame到內存,

2)做出改變,

3)將其保存回物理RData,

4)將其從內存中刪除以避免沖突?

反正我是否可以跳過加載/保存步驟並直接對物理RData進行永久性更改? 有沒有辦法使用data.frame,就像使用SQLite / MySQL數據庫一樣? 或者我應該只使用SQLite / MySQL(而不是data.frame)作為數據存儲?

更多想法:我認為主要區別在於,使用SQLite / MySQL建立與數據庫的連接,但是為了使用RData中的data.frame,您可以在內存中復制。 后一種方法可能會在復雜程序中產生沖突。 為了避免潛在的沖突,您必須保存data.frame並在每次更改時立即將其從內存中刪除。

謝謝!

您可能需要考慮使用attach而不是使用load 這可以將保存的數據對象附加到搜索路徑,而無需將其中的所有對象加載到全局環境中。 然后可以使用數據框。

如果你想更改數據框,那么你需要將它復制到全局環境(大多數編輯會自動發生),然后你需要再次保存它(沒有一種簡單的方法可以將它保存到。包含其他對象的Rdata文件)。

完成后,您可以使用detach (但如果您在全局環境中制作了副本,則仍需要刪除該副本)。

如果你不喜歡每次都輸入load / save命令(或attach / detach ),那么你可以編寫自己的函數來完成所有的步驟(如果副本只在函數的環境中,那么你不必擔心刪除它)。

您可能還想考慮存儲數據的不同方法。 典型的.Rdata文件適用於全有或全無的方法。 saveRDSreadRDS函數將保存並讀取單個對象(並且在讀取時不要強制使用相同的名稱)。 如果您經常更改表並希望它們存儲在R之外,那么與數據庫方法的接口可能是最好的。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM