[英]Recovering dataframe from Rstudio viewer?
在您的項目目錄中,您會找到一個名為.Rproj.user
的隱藏文件夾。 在您的目錄樹中,最終您會找到一個名為viewer-cache
的文件夾,其中包含一個.Rdata
文件。
我懷疑目錄名稱是隨機的,因此您必須進行一些挖掘。 如果您使用的是 Linux 或 MacOS,您可以嘗試find ~/Project | grep ".Rdata"
find ~/Project | grep ".Rdata"
以加快進程。
這是我剛剛保存的玩具數據的示例。
Project
└── .Rproj.user
└── D31E74F4
└── viewer-cache
└── 6F635E12.Rdata
您可以使用load()
加載該.Rdata
:
load("~/Project/.Rproj.user/D31E74F4/viewer-cache/6F635E12.Rdata")
然后將有一個 object 與您的全局環境中的文件同名:
head(`6F635E12`)
mpg cyl disp hp drat wt qsec vs am gear carb
Mazda RX4 21.0 6 160 110 3.90 2.620 16.46 0 1 4 4
Mazda RX4 Wag 21.0 6 160 110 3.90 2.875 17.02 0 1 4 4
Datsun 710 22.8 4 108 93 3.85 2.320 18.61 1 1 4 1
Hornet 4 Drive 21.4 6 258 110 3.08 3.215 19.44 1 0 3 1
Hornet Sportabout 18.7 8 360 175 3.15 3.440 17.02 0 0 3 2
Valiant 18.1 6 225 105 2.76 3.460 20.22 1 0 3 1
如果您沒有使用項目,您可能會在~/.rstudio-desktop/viewer-cache
中找到該文件。
根據 Ian 的回答,這里是一個 function,它返回一個包含它恢復的所有對象的列表。
recover_data_viewer_cache_objects <- function() {
active_project <- rstudioapi::getActiveProject()
if(is.null(active_project)) {
if(.Platform$OS.type == "windows")
viewer_cache_files <- Sys.glob(file.path(Sys.getenv("localappdata"),
"RStudio-Desktop",
"viewer-cache",
"*.Rdata"))
else
viewer_cache_files <- Sys.glob(file.path("~",
".rstudio-desktop",
"viewer-cache",
"*.Rdata"))
} else {
viewer_cache_files <- Sys.glob(file.path(active_project,
".Rproj.user",
"*",
"viewer-cache",
"*.Rdata"))
}
# record environment, load cached objects, return environment diff
# (apply family does not work with base::load() or base::get())
ls_0 <- ls()
for(o in viewer_cache_files)
load(o)
new_objects <- setdiff(ls(), c(ls_0, "ls_0", "o"))
recovered_objects <- list()
for(o in seq_along(new_objects))
recovered_objects[[new_objects[o]]] <- get(new_objects[o])
recovered_objects
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.