假设我们在R中有一个dataframe,就像这个一样,但要大得多:
planets = data.frame(
name = c("mercury", "venus", "earth", "mars"),
distance = c(57.91, 108.21, 146.60, 227.94), # in million km
period = c(87.97, 224.70, 365.26, 779.94), # in earth days
has.moons = c(FALSE, FALSE, TRUE, TRUE)
)
planets
## name distance period has.moons
## 1 mercury 57.91 87.97 FALSE
## 2 venus 108.21 224.70 FALSE
## 3 earth 146.60 365.26 TRUE
## 4 mars 227.94 779.94 TRUE
字符串
在JuliaConnectoR的帮助下,我想将此dataframe传输到Julia,并将'DataFrames' Julia模块中的函数应用于它,例如describe
函数。但不知何故,我似乎不明白它背后的机制(或哲学)。
library(JuliaConnectoR)
DataFrames <- juliaImport("DataFrames")
## Starting Julia ...
型
以下三个电话
DataFrames$describe(planets)
juliaLet("DataFrames.describe(df)", df = planets)
juliaCall("DataFrames.describe", planets)
型
都将生成以下错误消息
## Error: Evaluation in Julia failed.
## Original Julia error message:
## MethodError: no method matching describe(::Main.RConnector.RDataFrame)
型
用juliaPut
生成代理对象并不能改善这种情况,也就是说,会弹出类似的错误消息。
planets_jl <- juliaPut(planets)
planets_jl
## <Julia object of type Main.RConnector.RDataFrame>
## Main.RConnector.RDataFrame with 4 rows, 4 columns, and an unknown schema.
型
目前,我通过在R中将 Dataframe 存储到'feather'文件中并将其加载到Julia中来解决这个问题,因此'planets'是Julia环境中的纯Julia对象。
1条答案
按热度按时间q9rjltbz1#
您必须创建一个Julia
DataFrame
,然后可以与desribe
一起使用。字符串