通过 system() 在 R 中使用 gsutil 命令——我需要分配哪些环境变量?

Use gsutil commands in R through system() -- which environmental variables do I need do assign?

不确定我该如何处理,但目前无法正常工作:

我的第一个想法:在我的主目录中,我有 GC SDK 的文件夹:

Sys.setenv(PATH="$HOME/google-cloud-sdk")
system(paste0("gsutil cp ",paste0(bucket,cancer.id,"/rnaseq_fpkm_*.csv "),paste0(cancer.id,"/rnaseq_fpkm_*.csv")),intern=F)

sh: 1: gsutil: not found
Warning message:
In system(paste0("gsutil cp ", paste0(bucket, cancer.id, "/rnaseq_fpkm_*.csv "),  :
  error in running command

如有任何帮助,我们将不胜感激。

如果您想添加到您的路径而不是替换,withr::with_path 提供了一个很好的短期解决方案。您还可以使用 expand.path 将用户路径扩展为完整路径。尝试

withr::with_path( path.expand("~/google-cloud-sdk/bin/"), {
   system(paste0("gsutil cp ",paste0(bucket,cancer.id,"/rnaseq_fpkm_*.csv "),paste0(cancer.id,"/rnaseq_fpkm_*.csv")),intern=F)
})

或者甚至只是为了检查它是否有效,请尝试

withr::with_path( path.expand("~/google-cloud-sdk/bin/"), {
   print(Sys.getenv("PATH"))
   print(Sys.which("gsutil"))
})