小编ags*_*udy的帖子

如何更改R中的语言设置

我的错误消息以法语显示.如何更改系统语言设置,以便错误消息以英语显示?

r

93
推荐指数
9
解决办法
8万
查看次数

ggplot2增加图例键之间的空间

如何增加ggplot2情节图例的键之间的空间?

library(ggplot2)
ggplot(aes(mpg, wt, colour = factor(cyl)),
       , data = mtcars) +
      geom_point() +
  theme(legend.direction = "horizontal", 
        legend.position = "bottom") +
  guides(color = guide_legend(nrow=2))
Run Code Online (Sandbox Code Playgroud)

在此输入图像描述

我正在寻找一个ggplot2选项,在上图中的(键4和键6)之间添加一种垂直调整?我应该创建自定义图例键吗?

PS:我想增加不在标签之间的方框之间的空白区域.

想要的情节是:

在此输入图像描述

注意:没有问题不与另一个问题重复.我们希望在这里添加已经在多行中的项之间的垂直间距.在另一个问题中,我们有1行图例,我们想在项目之间添加空格(水平).

r ggplot2

47
推荐指数
2
解决办法
3万
查看次数

裁剪SpatialPolygonsDataFrame

我有两个SpatialPolygonsDataFrame文件:dat1,dat2

extent(dat1)
class       : Extent 
xmin        : -180 
xmax        : 180 
ymin        : -90 
ymax        : 90 


extent(dat2)
class       : Extent 
xmin        : -120.0014 
xmax        : -109.9997 
ymin        : 48.99944 
ymax        : 60 
Run Code Online (Sandbox Code Playgroud)

我想使用dat2的范围裁剪文件dat1.我不知道怎么做.我之前只使用"crop"函数处理光栅文件.

当我将此函数用于当前数据时,会发生以下错误:

> r1 <- crop(BiomassCarbon.shp,alberta.shp)
Error in function (classes, fdef, mtable)  : 

 unable to find an inherited method for function ‘crop’ for signature"SpatialPolygonsDataFrame"’
Run Code Online (Sandbox Code Playgroud)

r crop spatial

27
推荐指数
2
解决办法
3万
查看次数

R中的自定义排序

我有一个类似于以下内容的分类数据集:

A<-data.frame(animal=c("cat","cat","cat","dog","dog","dog","elephant","elephant","elephant"),
              color =c(rep(c("blue","red","green"),3)))
Run Code Online (Sandbox Code Playgroud)

我想订购它,以便动物用狗,然后大象,然后猫,然后颜色分为绿色,蓝色,然后红色.所以最后它看起来像

狗绿色,狗蓝色,狗红色,大象绿色,大象蓝色,...

sorting r categories

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

函数参数的部分匹配

我知道,对于一个列表,使用基本运营商建立索引时,部分匹配完成$[[.例如:

ll <- list(yy=1)
ll$y
[1] 1
Run Code Online (Sandbox Code Playgroud)

但我仍然是一个R新手,这对我来说是新的,函数参数的部分匹配:

h <- function(xx=2)xx
h(x=2)
[1] 2
Run Code Online (Sandbox Code Playgroud)

我想了解这是如何工作的.它背后的机制是什么?这有副作用吗?我想知道如果给出了xx参数,有人可以测试一下吗?

Andrie评论后编辑:

内部R使用pmatch算法来匹配参数,这里是一个如何工作的示例:

 pmatch("me",   c("mean", "median", "mode")) # error multiple partial matches
[1] NA
> pmatch("mo",   c("mean", "median", "mode")) # mo match mode match here
[1] 3
Run Code Online (Sandbox Code Playgroud)

但为什么R有这样的功能呢?partial unique匹配背后的基本理念是什么?

r semantics

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

回收和分配功能(`split <-`)

有人可以解释一下这一行R代码是如何工作的吗?

split(dat, f) <- lapply(split(dat, f), max)
Run Code Online (Sandbox Code Playgroud)

我认为这只是一个回收规则,但实际上我无法理解.

数据示例:

dat <- c(1, 2, 3, 100, 200, 300)
f <- as.factor(c("a", "a", "b", "a", "b", "b"))
split(dat, f) <- lapply(split(dat, f), max)
dat
[1] 100 100 300 100 300 300
Run Code Online (Sandbox Code Playgroud)

代码执行我想做的事情(按组分配最大值),但问题是这是如何完成的?

syntax functional-programming r

16
推荐指数
2
解决办法
394
查看次数

多POST查询(会话模式)

我正在尝试查询此网站以获取优惠列表.问题是我们需要在收到最终结果之前填写2个表单(2个POST查询).

这就是我到目前为止所做的:

首先,我在设置cookie后发送第一个POST:

library(httr)
set_cookies(.cookies = c(a = "1", b = "2"))
first_url <- "https://compare.switchon.vic.gov.au/submit"
body <- list(energy_category="electricity",
             location="home",
             "location-home"="shift",
             "retailer-company"="",
             postcode="3000",
             distributor=7,
             zone=1,
             energy_concession=0,
             "file-provider"="",
             solar=0,
             solar_feedin_tariff="",
             disclaimer_chkbox="disclaimer_selected")
qr<- POST(first_url,
          encode="form",
          body=body)
Run Code Online (Sandbox Code Playgroud)

然后尝试使用第二个帖子查询检索商品:

gov_url <- "https://compare.switchon.vic.gov.au/energy_questionnaire/submit"
qr1<- POST(gov_url,
          encode="form",
          body=list(`person-count`=1,
                    `room-count`=1,
                    `refrigerator-count`=1,
                    `gas-type`=4,
                    `pool-heating`=0,
                    spaceheating="none",
                    spacecooling="none",
                    `cloth-dryer`=0,
                    waterheating="other"),
          set_cookies(a = 1, b = 2))
)
library(XML)
dc <- htmlParse(qr1)
Run Code Online (Sandbox Code Playgroud)

但不幸的是,我收到一条消息,表明会话结束.非常感谢您解决此问题的任何帮助.

更新添加cookie:

我添加了cookie和中间GET,但我仍然没有任何结果.

library(httr)
first_url <- "https://compare.switchon.vic.gov.au/submit"
body <- list(energy_category="electricity",
             location="home",
             "location-home"="shift",
             "retailer-company"="",
             postcode=3000,
             distributor=7,
             zone=1,
             energy_concession=0,
             "file-provider"="", …
Run Code Online (Sandbox Code Playgroud)

python session r scrapy httr

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

如何在R中解锁环境?

在R中玩绑定和环境调整,我们有这三个功能:

  1. lockEnvironment(env) 锁定env,因此您无法向env添加新符号.
  2. lockBinding(sym, env) 将sym锁定在env中,这样你就无法修改它
  3. unlockBinding(sym, env) 放松后一把锁.

但是我怎样才能解锁环境?也许我想念一些东西,但看起来R不暴露一个unlockEnvironment功能或等效的机制来解锁env?这有什么设计理由吗?

这里有一个如何使用这个函数的例子:

e <- new.env()
lockEnvironment(e)
get("x",e)
assign("x",2,envir=e)
lockBinding("x", e)
get("x",e)
unlockBinding("x", e)
assign("x",3,envir=e)

## how to relese e lock?
unlockEnvironment(e) ## the function doesn't exist
Run Code Online (Sandbox Code Playgroud)

locking r

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

ggplot2条形图的多个子组

我正在尝试生成一个包含多组因子的条形图.通过Variety和Irrigation处理分组的一个例子来自我正在尝试创建的内容:

在此输入图像描述

我知道我可以使用生成多个图形facet_wrap(),但我想为多年的类似数据生成同一类型数据的多个图形.我在此示例中使用的数据示例:

Year        Trt Variety    geno yield   SE
2010-2011   Irr Variety.2   1   6807    647
2010-2011   Irr Variety.2   2   5901    761
2010-2011   Irr Variety.1   1   6330    731
2010-2011   Irr Variety.1   2   5090    421
2010-2011   Dry Variety.2   1   3953    643
2010-2011   Dry Variety.2   2   3438    683
2010-2011   Dry Variety.1   1   3815    605
2010-2011   Dry Variety.1   2   3326    584
Run Code Online (Sandbox Code Playgroud)

有没有办法在ggplot2中创建多个分组?我已经搜索了很长时间,还没有看到像上面的示例图那样的例子.

感谢您的帮助!

r ggplot2

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

在Rstudio上导航R代码的高效和递归方式?

我正在使用RStudio,因为我发现它是一个很好的IDE.

我开始觉得需要通过打包代码来深入理解或破解某些功能.当我尝试使用Ctrl +单击鼠标进行导航时对于在包中定义的函数,代码将显示在特殊的Source Viewer中.

这个观点的问题

  1. 它是只读视图(为什么?).你无法通过调用和定义的函数代码.我知道其他IDE(对于其他语言)我们可以在只读模式下递归遍历代码.
  2. 对于泛型函数,我们只有UseMethod行而没有代码.

我的解决方案是加载包(代码源)并使用Find in files选项查看代码.

您是否有更有效的方法分别通过代码?我愿意接受建议:其他IDE?在Windows/Unix的?网络解决方案:您认为可以在云端安装Rstudio服务器版本,无需加载即可通过所有R包吗?

PS:我的问题主要是关于通过代码而不是黑客攻击它.

ide r rstudio

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