小编Pet*_*ter的帖子

如何在使用geom_sf时删除边框线?

我尝试过以下操作:

ggplot(geography) + geom_sf(aes(fill=rate, color = NULL))
Run Code Online (Sandbox Code Playgroud)

但那并没有摆脱边界线.

r geospatial ggplot2

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

ggplot2:使用facet_wrap返回"完整"或"子集"glm模型的逻辑结果的stat_smooth

我正在研究逻辑回归模型,其中包含一个连续预测器和一个具有多个级别的分类预测器.我想使用ggplot2和利用它facet_wrap来显示结果,以显示分类预测器的每个级别的回归线.在这样做时,我注意到提供的拟合曲线stat_smooth仅考虑特定方面中的数据,而不是整个数据集.这是一个很小的差异,但是当看到的情节与从中返回的预测值时,这是一个显着的差异predict.glm.

下面是一个使用代码后面的图形重新创建问题的示例.

library(boot)    # needed for inv.logit function
library(ggplot2) # version 0.8.9

set.seed(42)
n <- 100

df <- data.frame(location = rep(LETTERS[1:4], n),
                 score    = sample(45:80, 4*n, replace = TRUE))

df$p    <- inv.logit(0.075 * df$score + rep(c(-4.5, -5, -6, -2.8), n))
df$pass <- sapply(df$p, function(x){rbinom(1, 1, x)}) 

gplot <- ggplot(df, aes(x = score, y = pass)) + 
            geom_point() + 
            facet_wrap( ~ location) + 
            stat_smooth(method = 'glm', family = 'binomial') 

# 'full' logistic model …
Run Code Online (Sandbox Code Playgroud)

plot r ggplot2

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

Knitr :: spin()可以获取全局选项吗?

knitr :: spin()对于那些喜欢先编写代码然后再编写文本的人来说是一个很棒的工具.我想用它来生成几乎没有代码回显的文档,但是有很多输出和文本注释.但是,每次我关闭回声然后添加一些文本时,spin()会再次回显.

无论如何,spin()从它正在旋转的r脚本中获取全局选项?一个概念性的方式可能是放

#+ opts_chunk$set(echo=FALSE)
Run Code Online (Sandbox Code Playgroud)

作为第一行,但似乎没有被spin()识别.有没有办法实现这个目标?

标记

r knitr knitr-spin

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

R中的动态LaTeX参考与knitr一起评论

关于Sweave( 在Sweave文档中R评论中的数字的动态参考),我曾向此提出过类似的问题, 并希望在使用时看看是否有人作为类似的答案knitr.

目标是拥有以下代码块

<<"example", fig.cap = "some figure", highlight = FALSE>>=
# the following code generated Figure \ref{fig:example}
plot(1:10, 1:10)
@
Run Code Online (Sandbox Code Playgroud)

必须在结果.pdf中显示为

# the following code generated Figure 1.1
plot(1:10, 1:10)
Run Code Online (Sandbox Code Playgroud)

到目前为止,我发现通过设置highlight = FALSER代码将放置verbatim在生成的.tex文件的环境中.如果环境可能alltt不是verbatim那么我们就会得到所需的输出.是否可以alltt通过knitr选项将非突出显示的代码块放在环境中?

latex r knitr

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

Fortran子程序不适用于R包

我的一个旧项目已经开始显示一个新的行为,一个已经可供R包使用的fortran子程序不再可用.该包在src/目录中包含C++和Fortran代码.显然C++方法可用,但Fortran子程序不可用.

您可以在我的github 页面上查看代码库 .

重现错误所需的细节如下

# Install the specific version of the sccm package (including dependencies)
devtools::install_github("dewittpe/sccm@72375b2f347667119215eab708ebdfdec78fdfb2")
Run Code Online (Sandbox Code Playgroud)

我们从sccm包和示例数据集加载共享对象.dyn.load(list.files(system.file("libs",package ="sccm"),full.names = TRUE))

# Example data set
data("HexagonalFish", package = "sccm")
hf_pg <- sccm::polygon(HexagonalFish[, c("x", "y")])
Run Code Online (Sandbox Code Playgroud)

为了帮助说明这个问题,有一种C++方法可以确定一个点是否在多边形的内部.符号名称是_sccm_is_in_cpp和,如此处所示,已加载

is.loaded("_sccm_is_in_cpp")
# [1] TRUE

.Call("_sccm_is_in_cpp", PACKAGE = "sccm", 0.2, 0.4, hf_pg$vertices) # expect 0
## [1] 0
.Call("_sccm_is_in_cpp", PACKAGE = "sccm", 156, 178, hf_pg$vertices) # expect 1
## [1] 1
Run Code Online (Sandbox Code Playgroud)

导致错误的Fortran子程序之一是:scmap_.但是,符号已加载.

is.loaded("scmap_")
## [1] TRUE

# need values …
Run Code Online (Sandbox Code Playgroud)

fortran r r-package

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

使用 ggplot2 和特殊字符

我正在从网站读取数据,其中包含标识每一行的文本。我只是将数据复制并粘贴到 Excel 中,然后由 R 读取该文件。其中一行包含德国城市的名称“W\xc3\xbcrzburg”,其中包含带有变音符号的小写 u。我在网络或 Excel 上看到特殊字符没有问题。问题是,当这个单词传递给 ggplot2 时,它在图中显示为“Wízburg”,波浪线位于大写字母 A 上。RStudio 根据其显示区域显示这两种形式。我假设ggplot2使用不同的语言来解释特殊字符。

\n\n

有没有办法告诉 ggplot 如何读取、解释和显示特殊字符?我不想只为这个城市编写专门的代码,而是为了解决一般问题。随着数据随着时间的推移而扩展,我可能会遇到其他角色。

\n

excel r special-characters ggplot2

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

使用增量变量名称从R数据框中子集数据

我有一个R数据框df,带有列名V1, V2, V3...V1000.我需要df通过选择每个第20列,即V1, V21, V41, V61通过列的结尾来进行子集化.

我认为这可以使用dplyr来完成select(df, num_range("V", val)),但我很难说如何通过1000列迭代val,步进20.

有什么建议?

r dplyr

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

在dplyr summarise()中按组计算上下置信区间

我正在尝试制作一个表格,显示N(观察次数)、百分比频率(答案 > 0)以及百分比频率的上下置信区间,我想按类型对其进行分组。

数据示例

dat <- data.frame(
  "type" = c("B","B","A","B","A","A","B","A","A","B","A","A","A","B","B","B"),
  "num" = c(3,0,0,9,6,0,4,1,1,5,6,1,3,0,0,0)
)
Run Code Online (Sandbox Code Playgroud)

预期输出(已填充值):

Type   N   Percent   Lower 95% CI   Upper 95% CI
A
B
Run Code Online (Sandbox Code Playgroud)

试图

library(dplyr)
library(qwraps2)

table<-dat %>%
  group_by(type) %>%
  summarise(N=n(),
            mean.ci = mean_ci(dat$num),
            "Percent"=n_perc(num > 0))
Run Code Online (Sandbox Code Playgroud)

这有助于获得 N 和百分比频率,但在我添加 mean_ci 时返回错误:“列的长度必须为 1(汇总值),而不是 3”

我试过的第二个代码,在这里找到:

table2<-dat %>%
  group_by(type) %>%
  summarise(N.num=n(),
            mean.num = mean(dat$num),
            sd.num = sd(dat$num),
            "Percent"=n_perc(num > 0)) %>%
  mutate(se.num = sd.num / sqrt(N.num),
         lower.ci = 100*(mean.num - qt(1 - (0.05 …
Run Code Online (Sandbox Code Playgroud)

r group-summaries dplyr summarize qwraps2

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