小编Ram*_*ath的帖子

从ggplot2中的Facet中删除未使用的因子

我试图找出一种巧妙的方法来从ggplot2中的facet中删除未使用的因子.这是一个最小的例子

# DUMMY DATA
mydf = data.frame(
  x = rpois(6, 25),
  y = LETTERS[1:6],
  cat = c(rep('AA', 3), rep('BB', 3)))

# PLOT IT!
p0 = ggplot(mydf, aes(x = x, y = y)) +
  geom_point() +
  facet_wrap(~ cat, ncol = 1)
Run Code Online (Sandbox Code Playgroud)

从下图可以看出,尽管事实上没有相应的数据,但因子D,E和F都是在方面AA中绘制的.我想要的是从方面AA中消除{D,E,F}的方法以及从方面BB中类似地{A,B,C}.

有没有一个巧妙的方法来做到这一点,甚至一个黑客是可以接受的.

在此输入图像描述

r ggplot2

7
推荐指数
1
解决办法
2073
查看次数

系统路径与Sys.getenv('PATH')

这可能会成为一个相当微不足道的问题,但我现在已经困惑了很长一段时间.这一切都是在我安装通用文档转换器pandoc并将其添加到我的路径时开始的.因此,当我echo $PATH在Mac OS X上的默认终端上进行操作时,它会显示pandoc并且我能够执行它.

但是,当我尝试在R会话中使用相同的方法调用system(pandoc --version)它时,它无法识别pandoc.进一步检查显示,system('echo $PATH')我没有返回与终端相同的路径.

任何人都可以帮我解决发生的事情吗?我喜欢做我所有的工作RStudio,因此我更愿意pandoc从内部直接使用.因此需要弄明白这一点.

macos r rstudio

6
推荐指数
1
解决办法
2273
查看次数

将值添加到rCharts hPlot工具提示

我想通过rCharts为标准的Highcharts工具提示添加一些额外的值.示例代码:

require(rCharts)
df <- data.frame(x = c(1:5), y = c(5:1), 
             z = c("A", "B", "C", "D", "E"),
             name = c("K", "L", "M", "N", "O"))
h1 <- hPlot(x = "x", y = "y", data = df, type = "scatter", group = "z")
Run Code Online (Sandbox Code Playgroud)

这会生成带有x和y值的工具提示.系列名称为标题.现在我还想将名称值添加到工具提示中.但是我不知道如何做到这一点.

r highcharts rcharts

6
推荐指数
1
解决办法
2650
查看次数

点 - 点参数的范围

我对dot-dot-dot参数的范围有疑问.考虑以下函数`foo =

foo <- function(x, ...){
   require(classInt);
   intvl = classIntervals(x, ...);
   return(intvl);
 }
Run Code Online (Sandbox Code Playgroud)

该功能适用​​于以下调用

x = runif(100, 0, 100);
y1 = foo(x, n = 5, style = 'quantile');
y2 = foo(x, style = 'equal');
Run Code Online (Sandbox Code Playgroud)

但是当我尝试使用style ='fixed'参数时,我需要一个fixedBreaks参数

y3 = foo(x, style = 'fixed', fixedBreaks = seq(0, 100, 20))
Run Code Online (Sandbox Code Playgroud)

eval中的错误(expr,envir,enclos):...列表不包含2个元素

请注意,以下工作完美

y5 = classIntervals(x, style = 'fixed', fixedBreaks = seq(0, 100, 20))
Run Code Online (Sandbox Code Playgroud)

我怀疑这与范围规则有关,但一直无法指责它.任何有关这方面的帮助将非常感谢.

编辑.我拼凑了一个更简单的黑客,使它工作.我认为这是一个match.call问题,因为style ='pretty'存在同样的问题.快速查看代码显示这些是match.calls的两种样式,所以很可能这是错误的来源.无论如何,这是我提出的黑客攻击

foo2 <- function(x, ...){
  require(classInt);
  y = list(...); y$var = x;
  intvl = do.call('classIntervals', y);
}

y6 …
Run Code Online (Sandbox Code Playgroud)

r scoping

5
推荐指数
1
解决办法
1139
查看次数

R包装与大型外部资产

这是我之前发布的问题的后续内容.总而言之,我正在编写一个名为Slidify的R包,它使用了几个外部非基于R的库.我之前的问题是如何管理依赖项.

提出了几种解决方案,其中最有吸引力的解决方案是将外部库打包为不同的R包,并使其成为Slidify的依赖.这是程序包遵循的策略xlsx,它将java依赖项打包为另一个程序包xlsxjars.

一个替代方案是我提供外部库作为下载并install_libraries在Slidify中打包一个函数,它将自动获取所需的文件并将其下载到包目录中.我还可以添加一个update_libraries功能,如果事情发生变化会更新.

我的问题是,对于非基于外部库的CRAN舞蹈是否有任何特定的优势.我在这里错过了什么吗?

r package

5
推荐指数
1
解决办法
126
查看次数

可以将参考类用于日志调用

我有一个关于参考类的问题.我的问题是在我正在开发rCharts的R包中.它使用引用类从R创建交互式图.

创建情节涉及一系列调用.这是一个示例,首先创建散点图,然后添加线图.

p1 <- rPlot(mpg ~ cyl, data = mtcars, type = 'point')
p1$layer(copy_layer = T, type = 'line')
Run Code Online (Sandbox Code Playgroud)

现在,由于引用类就像一个闭包,我想知道是否可以记录所做的调用.我的想法是,如果我可以记录所做的调用序列,那么我可以自动插入用于创建可视化的源代码以及html.

我试图看看我是否可以使用sys.functionmatch.call,但我没有得到任何地方.如果有人可以指出我如何处理这个问题,我将不胜感激.

r reference-class

5
推荐指数
1
解决办法
148
查看次数

在R 2.15.2上安装rCharts包

我目前正在尝试安装Ramnath Vaidyanathan的rCharts包.在他的github存储库中,它建议我们使用以下命令安装包:

require(devtools)
install_github('rCharts', 'ramnathv')
Run Code Online (Sandbox Code Playgroud)

但是,我无法安装devtools包,因为它需要R 3.0.0.我在运行Ubuntu 12.10的服务器上运行R 2.15.2.更新到R 3.0.0不是一个选项,因为我还需要为R 3.0.0重建我需要的某些其他软件包.所以我无法使用install_github函数进行安装,因为我无法安装devtools.

然后我尝试从这里下载tarball 并使用R CMD INSTALL进行安装.但是,尝试通过以下方式安装:

 R CMD INSTALL ramnathv-rCharts-b1061ab.tar.gz
Run Code Online (Sandbox Code Playgroud)

导致以下错误:

Error in untar2(tarfile, files, list, exdir) : unsupported entry type ‘g’
Run Code Online (Sandbox Code Playgroud)

我不确定尝试安装rCharts包的后续步骤.

visualization r rcharts

5
推荐指数
1
解决办法
4899
查看次数

网页搜罗(在R?中)

我想要得到的公司的名字中的中间列页面(用蓝色粗体),以及是谁注册投诉的人的位置指示器(例如,"印度新德里",写在绿) .基本上,我想要一个包含两列的表(或数据框),一列用于公司,另一列用于位置.有任何想法吗?

r html-parsing web-scraping

2
推荐指数
1
解决办法
6543
查看次数

正则表达式模式删除自定义标记

我试图弄清楚一个正在从字符串中剥离一组自定义标记的正则表达式.例如,如果我有字符串,

s = "{\n \"graph\": \"#! graph1 !#\",\n\"element\": \"#! 
    document.getElementById('x_axis1') !#\",\n\"orientation\": \"bottom\" \n}"
Run Code Online (Sandbox Code Playgroud)

我想要输出

"{\n \"graph\":  graph1 ,\n\"element\":  document.getElementById('x_axis1') 
 ,\n\"orientation\": \"bottom\" \n}"
Run Code Online (Sandbox Code Playgroud)

我尝试了以下代码

gsub('\"#!([^!].*)!#\"', "\\1", s)
Run Code Online (Sandbox Code Playgroud)

但它只删除了第一组标记.我真的很感激,如果有人能指出我将剥离所有自定义标记的正则表达式.

regex r

2
推荐指数
1
解决办法
131
查看次数

使用传递的数据帧名称作为绘图标题

我有一个函数foo,它将数据帧作为输入,并返回一个ggplot对象作为输出.我需要使用数据框的名称作为绘图的标题.我无法弄清楚如何做到这一点.

如果我没有将它传递给函数,我知道我可以使用它deparse(substitute(df))来获得所需的标题.但是我无法在函数内部执行此操作.

有关如何做到这一点的任何想法?

r ggplot2 dataframe

1
推荐指数
1
解决办法
1017
查看次数