我使用的是r 3.3.3,dplyr 0.7.4和Hmisc 4.1-1.我注意到我加载包的顺序会影响dplyr :: summaries函数是否有效.我知道以不同的顺序加载包会掩盖某些函数,但我使用package :: function()语法来避免这个问题.确切的问题围绕标记变量.我知道过去有过tidyverse和变量标签的问题,但似乎都没有解决为什么会出现这种特殊情况.
第一个有效的例子 - 我只加载Hmisc然后加载dplyr并且我能够汇总数据 -
#this works fine
library(Hmisc)
library(dplyr)
Hmisc::label(iris$Petal.Width) <- "Petal Width"
sumpct <- iris %>%
dplyr::group_by(Species) %>%
dplyr::summarise(med =median(Petal.Width),A40 = round(100*ecdf(Petal.Width)(.40),1),
A50 =round(100*ecdf(Petal.Width)(.50),1),
mns = mean(Petal.Width),
lowermean = mean(Petal.Width)-sd(Petal.Width),
lowermedian = median(Petal.Width) - sd(Petal.Width))
Run Code Online (Sandbox Code Playgroud)
以下第二个例子打破.我启动一个新的会话并在Hmisc之后加载tidyverse并仍然使用package :: function()语法,但这会引发错误:
summarise_impl(.data,dots)出错:评估错误:
x且labels必须是同一类型.
第二个例子:
###restart session
#this example does not work
library(Hmisc)
library(tidyverse)
Hmisc::label(iris$Petal.Width) <- "Petal Width"
sumpct <- iris %>%
dplyr::group_by(Species) %>%
dplyr::summarise(med =median(Petal.Width),A40 = round(100*ecdf(Petal.Width)(.40),1),
A50 =round(100*ecdf(Petal.Width)(.50),1),
mns = …Run Code Online (Sandbox Code Playgroud) 我正在使用 Julia 1.0.0 和 R 3.5.1,我在使用JuliaCall和调用 R/RStudio 中的 Julia 时遇到问题XRJulia。
当我尝试:
library(JuliaCall)
julia <- julia_setup(JULIA_HOME = "C:\\Program Files\\Julia-1.0.0\\bin")
Run Code Online (Sandbox Code Playgroud)
找到了 Julia 版本,但弹出一条错误消息,提示“缺少 libgcc_s_seh-1.dll”
当我尝试:
library(XRJulia)
JULIA_BIN <- "C:\\Program Files\\Julia-1.0.0\\bin"
findJulia(test=TRUE)
Run Code Online (Sandbox Code Playgroud)
测试返回 false。
但是,当我使用RCallJulia从 Julia 调用 R 时,Julia 可以定位并使用 R(使用 Atom/Juno IDE)。Julia 和 R 都位于 C:\Program Files 路径中。
从 R/RStuio 调用 Julia 的正确方法是什么?
我在这里寻找解决方案,但无法使其正常工作。
更新 - 我尝试了这个解决方案,以便 R 可以识别 Julia 文件所在的位置。当我重新启动我的会话并设置新的 env 然后尝试运行我的 R 会话下面的代码时,它会中止
Sys.setenv(PATH = paste(Sys.getenv("PATH"),"C:\\Program Files\\Julia-1.0.0\\bin",sep=";"))
library(JuliaCall)
julia <- julia_setup(JULIA_HOME = …Run Code Online (Sandbox Code Playgroud) 我试图找到在R.例如在不同的包的特定函数的方法methods(broom::tidy)将返回所有方法的功能tidy在包中broom。对于我当前的问题,最好将methods函数包含在另一个函数中,如下所示:
f1 <- function(x,y){
methods(x::y)
}
(我删除了与问题无关的其他代码部分。)但是,当我运行这样的函数时:
f1 <- function(x,y){ methods(x::y)}
f1(broom,tidy)
Run Code Online (Sandbox Code Playgroud)
I get the error
Error in loadNamespace(name) : there is no package called ‘x’
If I try to modify it as to only change the function but keep the package the same I get a similar error :
f2 <- function(y){ methods(broom::y)}
f2(tidy)
Run Code Online (Sandbox Code Playgroud)
Error: 'y' is not an exported object from 'namespace:broom'
How can I get the package and function …