在 R 中打开 .dat 文件,类似于 python 中的 joblib
open .dat file in R similar to joblib in python
我想在 R 中读取 .dat 文件,data.dat
包含两个列表列表 (a,b)
,维度分别为 50*5000*30
和 50*5000*5
。 a
包含 0
和 1024
之间的值,b
包含 0
和 1
之间的值。
第一次尝试:
#install.packages("devtools")
#devtools::install_github("insysbio/dbs-package")
library("dbs")
file_path = system.file(package = "dbs", "data.dat")
raw_data = read.dat(file_path)
data = import.dat(raw_data)
错误
data = import.dat(raw_data)
Error in x[subset & !is.na(subset), vars, drop = drop] :
subscript out of bounds
第二次尝试:
> read.table("data.dat", fileEncoding="latin1")
Error 扫描错误(file = file, what = what, sep = sep, quote = quote, dec = dec, : 第 2 行没有 3 个元素
第三次尝试:
data = scan(file="data.dat", what=list(x="", y="", z=""), flush=TRUE)
输出
读取了 3 个列表但具有垃圾值
我可以通过以下方式打开 Python 中的文件:
import joblib
a, b = joblib.load("data.dat")
R 中是否有替代 joblib 的方法?
网状包为 Python 模块、类 和函数提供了 R 接口。
#install.packages("reticulate")
library(reticulate)
use_python("/usr/local/bin/python")
use_virtualenv("myenv")
use_condaenv("myenv")
py_config()
#to install the required packages in python file
run_python_file <- function(python_file){
a = try(reticulate::py_run_file(python_file),silent=TRUE)
if(inherits(a,"try-error")& grepl("ModuleNotFoundError",a)){
system(sprintf("python -m pip install %s",gsub(".* |\W","",c(a))))
run_python_file(python_file)
}
else a
}
data = run_python_file("readfile.py")
data$a
data$b
readfile.py
#!/usr/bin/python
import joblib
a, b = joblib.load("data.dat")
我想在 R 中读取 .dat 文件,data.dat
包含两个列表列表 (a,b)
,维度分别为 50*5000*30
和 50*5000*5
。 a
包含 0
和 1024
之间的值,b
包含 0
和 1
之间的值。
第一次尝试:
#install.packages("devtools")
#devtools::install_github("insysbio/dbs-package")
library("dbs")
file_path = system.file(package = "dbs", "data.dat")
raw_data = read.dat(file_path)
data = import.dat(raw_data)
错误
data = import.dat(raw_data)
Error in x[subset & !is.na(subset), vars, drop = drop] :
subscript out of bounds
第二次尝试:
> read.table("data.dat", fileEncoding="latin1")
Error 扫描错误(file = file, what = what, sep = sep, quote = quote, dec = dec, : 第 2 行没有 3 个元素
第三次尝试:
data = scan(file="data.dat", what=list(x="", y="", z=""), flush=TRUE)
输出 读取了 3 个列表但具有垃圾值
我可以通过以下方式打开 Python 中的文件:
import joblib
a, b = joblib.load("data.dat")
R 中是否有替代 joblib 的方法?
网状包为 Python 模块、类 和函数提供了 R 接口。
#install.packages("reticulate")
library(reticulate)
use_python("/usr/local/bin/python")
use_virtualenv("myenv")
use_condaenv("myenv")
py_config()
#to install the required packages in python file
run_python_file <- function(python_file){
a = try(reticulate::py_run_file(python_file),silent=TRUE)
if(inherits(a,"try-error")& grepl("ModuleNotFoundError",a)){
system(sprintf("python -m pip install %s",gsub(".* |\W","",c(a))))
run_python_file(python_file)
}
else a
}
data = run_python_file("readfile.py")
data$a
data$b
readfile.py
#!/usr/bin/python
import joblib
a, b = joblib.load("data.dat")