我必须在colab中使用R从Google驱动器读取csv格式的数据。我知道如何使用python进行此操作,但是我没有在R中获得相关的方法来实现它。
答案 0 :(得分:1)
如果您可以公开数据,则可以使用gdown
。
system("gdown --id 12uRyLU-aAdInBtkVubhI4l3PmbYIo5aE")
data = read.csv("country_culture.csv")
这里是example notebook。
答案 1 :(得分:1)
我在 Colab 中使用 R 运行时,最初在将我的文件放入运行时时遇到了一些挑战,这是由 googledrive 包的依赖项引起的。我发现加载文件的最简单方法是编写一个小的辅助函数,并在创建链接时使我的文件在 google 上不受限制地可用(注意此示例使用外部包中的 read.spss 函数将数据实际加载到数据帧中) :
load_google_drive_data <- function(google_file_url){
g_link = google_file_url
file_id = substr(g_link, regexpr("/d/", g_link) + 3 , regexpr("/view", g_link) -1 )
url = paste("https://drive.google.com/uc?export=download&id=", file_id, sep="")
download.file(url, "file.sav")
df <- read.spss("file.sav", use.value.label=TRUE, to.data.frame=TRUE)
return(df)
}
你这样称呼它(插入你自己的链接):
load_google_drive_data("https://drive.google.com/file/d/<fileid>/view?usp=sharing")
答案 2 :(得分:0)
您可以使用两个R包来完成此操作,具体取决于您想如何将Google驱动器推向世界。
我在工作中使用此工具从同事希望我分析的共享文件中获取数据。最基本的使用方式
require(googlesheets4)
require(googledrive)
gs_file<- drive_get('name_of_sheet_on_google')
gs_data <- read_sheet(gs_file)
执行此操作时,您将需要登录google帐户,并且在运行代码时会出现身份验证请求,您将同意允许访问,并且数据将神奇地显示在数据框中。
我永远不会在无人看管的情况下运行代码,因此为了安全起见,我不会存储用户名和密码,但是这两个软件包都具有这些功能,并且如果您阅读了PDF并在CRAN上对这两个小插图进行了介绍,那么您应该能够安全的东西。
无论您是在在线Jupyter环境中工作,R还是R,这都是无关紧要的。这两个软件包和该代码(具有适当的访问权限,应该使您朝正确的方向前进!
答案 3 :(得分:0)
我发现完成这项工作的方法是将R代码作为Python笔记本的一部分运行。这有点麻烦,但是我首先尝试在RStudio中编写和测试我的代码,然后将其移植到Colab以便与我的团队共享。这是这样做的方法。
首先,您需要在Python中加载一个colab笔记本,这并不难,因为它是默认设置。但是无论如何,您都可以在运行时>>更改运行时类型中完成它。
现在,您需要使用块将R导入工作空间:
agents <- levels(ts_agents$agent)
results <- matrix(NA, length(agents))
for(i in 1:length(agents)){
ts_agents %>%
time_decompose(new_scheds)[i] %>%
anomalize(remainder)[i] %>%
time_recompose()[i] %>%
plot_anomalies(time_recomposed = TRUE, ncol = 3, alpha_dots = 0.5)[i] }
%reload_ext rpy2.ipython
from google.colab import drive
drive.mount('/content/malaria-drive')
进行内联响应,或者使用%R
进行R中的整个单元格运行(我的偏爱)。这是我正在处理的代码的一个片段。%%R
%%R
# Pkgs/opts ----
t_ini <- Sys.time()
install.packages("devtools")
devtools::install_github("lucasmation/microdadosBrasil")
xfun::pkg_attach2(
"microdadosBrasil",
"data.table",
"questionr",
"forcats",
"stringr",
"readr")
options(datatable.print.topn = 50,
scipen = 999)
)。%%R
是的,必须在每个代码块中键入drive.flush_and_unmount()
有点烦人,但这是我到目前为止找到的解决方案。希望Colab将来可以在R中提供直接方法。
答案 4 :(得分:0)
我在 Python Google colab 中这样做,使用 rpy2 在 Python 中使用 R。
它有效,但不幸的是,您必须在每个单元格的开头使用 %%R
才能使用 R。
from google.colab import drive
drive.mount('/content/drive')
%load_ext rpy2.ipython
# <%%R> has to be used in each cell with R-Code, with <%R> R-Code can be mixed with Python
%%R
load("file.RData")
答案 5 :(得分:-2)
我只是将我的 .sav 文件添加到会话内存中(单击左侧的文件夹图标,然后单击“发送到会话内存”按钮)。然后确保已发送并通过代码显示我的文件的确切名称: 系统(“ls”,真)。 然后从“haven”库使用函数“read_sav”(作为参数,您只需粘贴文件名)。就是这样。