小编Phi*_*hil的帖子

创建一个半甜甜圈,或议会座位,图表

我想在ggplot2中创建一个显示议会席位大小的图表,如下图所示.我的主要问题是,如何将圆环图转换为半圆形图(半圆弧)?

议会图表

以上图为例,我不知道从哪里开始:

df <- data.frame(Party = c("GUE/NGL", "S&D", "Greens/EFA", "ALDE", "EPP", "ECR", "EFD", "NA"),
                             Number = c(35, 184, 55, 84, 265, 54, 32, 27))
df$Party <- factor(df$Party)
df$Share <- df$Number / sum(df$Number)
df$ymax <- cumsum(df$Share)
df$ymin <- c(0, head(df$ymax, n= -1))

ggplot(df, aes(fill = Party, ymax = ymax, ymin = ymin, xmax = 2, xmin = 1)) + geom_rect() + 
coord_polar(theta = "y") + xlim(c(0, 2))
Run Code Online (Sandbox Code Playgroud)

在此输入图像描述

r ggplot2

6
推荐指数
3
解决办法
2076
查看次数

在 R 中,如何通过自定义打印函数可靠地打印对象的名称?

我在 R 中创建了一个类,并尝试为该类创建一个打印函数。我希望打印函数打印传递给打印函数的对象的名称。使用标准deparse(substitute())我可以获取变量的名称,这在我print()直接调用函数时有效。但当我只是从 R Studio 运行变量时它不起作用。它显然正在调用我的打印函数。但有一些间接导致它丢失变量名称。这是一个例子:

# Define class 'myobj'
myobj <- function(val) {
  
  obj <- structure(list(), class = c("myobj", "list")) 
  
  obj$value = val
  
  return(obj)
}

# Write custom print function for 'myobj' class
#' @export
print.myobj <- function(x, ...) {
  
  nm <- deparse1(substitute(x, env = environment()))
  cat(paste0("My object name: ", nm, "\n"))
  cat(paste0("My object value: ", x$value, "\n"))
      
  invisible(x)
}

myInstance <- myobj(123)

# Prints name and value.  
print(myInstance)

#> My object name: myInstance
#> …
Run Code Online (Sandbox Code Playgroud)

printing console r

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

使用 R 中的 table1 显示 95% 置信区间

我有人口统计数据,对于一些变量,我想显示平均值 (95% CI) 到目前为止:

> label (demog$Site) = "Site"
> label (demog$Sex) = "Sex"
> label (demog$Age) = "Age (years)"
> label (demog$Temperature) = "Temperature (Celcius)"
> label (demog$MOI) = "MOI"
> 
> table1(~Sex + Age + Temperature + MOI | Site, data = demog)
Run Code Online (Sandbox Code Playgroud)

这给了我所有按采样点分层的变量,这就是我想要的。但它报告了每个连续变量的平均值(SD)、中位数[最小、最大]和缺失(除了“性别”之外的所有变量),这是我不想要的。

为了改变显示的内容,我尝试模仿: https: //benjaminrich.github.io/table1/vignettes/table1-examples.html

我做了:

> my.render.cont = function(x) {with(stats.apply.rounding(stats.default(x), digits=2), c("", "Mean (95% CI)"=sprintf("%s (&plusmn; %s)", MEAN, (MEAN + SD*1.96), (MEAN - SD*1.96))))}
> my.render.cat = function(x) {c("", sapply(stats.default(x), function(y) with(y, sprintf("%d (%0.0f %%)", …
Run Code Online (Sandbox Code Playgroud)

r confidence-interval demographics

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

在 R 中计算 logit 模型的置信区间时,“confint”和“confint.default”之间有什么区别?

我想计算 R 中 logit 模型的某些参数的置信区间。我已阅读confintconfint.default的文档,但我无法理解有关何时适合应用每个函数的信息。有人可以向我解释一下吗?

r confidence-interval

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

在单个命令中运行选定的 Rmd 块

我正在尝试 Rmd 笔记本,我被困在一些看起来应该可行的事情上,但我根本找不到解决方案。

基本上,我想要一种功能性的方法来运行选定的 Rmd 块,而无需使用 knit 进行编译。所以我认为使用依赖块、缓存等在这里不起作用。

这是一个示例笔记本:

示例_笔记本.Rmd

---
title: "Example_Notebook"
output: html_notebook
---

```{r Chunk_1 , include=T}
print(1+2)
Var1 <- 'Variable From Chunk 1'
```

```{r Chunk_2 , include=T}
Var2 <- 'Variable From Chunk 2'
```

```{r Chunk_3 , include=T}
print(Var1)
Var3 <- 'Variable From Chunk 3'
print(Var3)
```
Run Code Online (Sandbox Code Playgroud)

假设我想运行 Chunk 1 和 Chunk 3。要手动执行此操作,我可以在光标位于 Chunk_1 时使用 Ctrl+Shift+Enter,然后在光标位于 Chunk_3 时再次使用 Ctrl+Shift+Enter。这将跳过 Chunk_2,同时仍然获得 1 和 3 的输出。

我正在寻找一种方法来在单个命令/函数中执行此操作。这与 RStudio 中的“运行上面的所有块”按钮类似,但显然我想跳过 Chunk_2。

我尝试了很多方法将其写在函数中。我得到的最接近的是使用 rstudioapi 包。这是我的函数的样子:

MyNewFunction <- function(){
    rstudioapi::navigateToFile( …
Run Code Online (Sandbox Code Playgroud)

r rstudio r-markdown rnotebook rstudioapi

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

如何在 R 中使用 ggarrange 减少绘图之间的间隙?

我正在尝试创建一个华夫饼图,其中共有 9 个图。然而,无论我如何尝试,我都无法减少图中 3 列之间的间距。这就是我现在的情节。 华夫饼情节足球

到目前为止我使用的代码是这样的:-

fig1 <- waffle(Intvec, rows=10, size=2.0, 
           colors=c("#cb181d", "#238b45", "#0570b0", 
                    "#fec44f", "#ec7014", "#6a51a3"),
           title = "Inter")
fig1$layers[[1]]$aes_params$colour <- '#252525'
fin1 <- fig1 + theme(plot.background = element_rect(fill = "#252525", colour = "#252525")) +
theme(legend.position = "none") +
labs(y = "Serie A", main = "Inter") +
 theme(axis.title.y = element_text(color="#bdbdbd", size=18, face="bold"),
 plot.title = element_text(colour = "#ffffff", size = 20, face = "bold"))
fin1
Run Code Online (Sandbox Code Playgroud)

在使用 ggarrange 之前对其他 8 个地块执行相同的操作

fig <- ggarrange(fin1, fin2, fin3, fin4, fin5,
                 fin6, fin7, …
Run Code Online (Sandbox Code Playgroud)

r ggpubr waffle-chart

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

R odbc::odbcListDrivers() 未在 /opt/homebrew/etc/odbcinst.ini 中列出驱动程序

我正在尝试从 R studio 连接到 Microsoft SQL Server 数据库。

我使用自制程序安装了 unixODBC 驱动程序管理器:

brew install unixodbc
Run Code Online (Sandbox Code Playgroud)

然后我尝试按照https://db.rstudio.com/best-practices/drivers/上的建议安装 freetds 驱动程序

# SQL Server ODBC Drivers (Free TDS)
  brew install freetds --with-unixodbc
Run Code Online (Sandbox Code Playgroud)

我收到错误:

Error: invalid option: --with-unixodbc
Run Code Online (Sandbox Code Playgroud)

我发现一个消息来源说该选项不再可用,因为它现在是默认选项。因此,我跑了:

brew install freetds
Run Code Online (Sandbox Code Playgroud)

然后,在 R Studio(和 R)中,我尝试列出已安装的驱动程序,但未找到:

> odbc::odbcListDrivers()
[1] name      attribute value    
<0 rows> (or 0-length row.names)
Run Code Online (Sandbox Code Playgroud)

接下来,我尝试根据https://learn.microsoft.com/en-us/sql/connect/odbc/linux-mac/install-microsoft-odbc-driver-sql安装适用于 SQL Server (macOS) 的 Microsoft ODBC 驱动程序-server-macos?view=sql-server-ver15并按照https://db.rstudio.com/databases/microsoft-sql-server/上的建议

我跑:

brew tap microsoft/mssql-release https://github.com/Microsoft/homebrew-mssql-release
brew update
HOMEBREW_NO_ENV_FILTERING=1 ACCEPT_EULA=Y brew install msodbcsql17 mssql-tools
Run Code Online (Sandbox Code Playgroud)

为了检查该驱动程序是否已在 odbcinst.ini 文件中注册,我首先运行: …

sql-server odbc r unixodbc

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

从图例中删除 ggplot2 的 geom_point 图标

注意:这是这个问题的后续。

首先是重现数据的代码:

mydf <- data.frame(year = c(rep(2000, 3), rep(2002, 3), rep(2004, 3), rep(2006, 3), rep(2008, 3), rep(2010, 3), rep(2012, 3), rep(2014, 3), rep(2016, 3)),
                 answer = rep(c("A great deal", "Hardly any", "Only some"), 9),
                 result = c(0.3015940, 0.1399303, 0.5584757, 0.2269548, 0.1792754, 0.5937698, 0.2955301, 0.1309859, 0.5734840, 0.3008197, 0.1344499,
                                                     0.5647303, 0.1919454, 0.2026290, 0.6054256, 0.1059793, 0.4190533, 0.4749674, 0.1190636, 0.3631279, 0.5178085, 0.1518314,
                                                     0.3181203, 0.5300483, 0.1424715, 0.3094615, 0.5480669))
mydf$year <- factor(mydf$year)
mydf$answer <- factor(mydf$answer)

triangles <- data.frame(year = c(2002, 2004, rep(2008, 2), rep(2010, 3), …
Run Code Online (Sandbox Code Playgroud)

r ggplot2

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

在 R 中访问 Sharepoint .xlsx 文件时出现问题

我正在尝试使用此处找到的说明从我们的 SharePoint 中提取数据(StackOverflow 问题)。这是我正在使用的代码:

library(readxl)
read_excel('//MyCompany.sharepoint.com/teams/MyProject/Shared Documents/MyExcelFile.xlsx',
       'Sheet1',
       skip=1)
Run Code Online (Sandbox Code Playgroud)

当我在浏览器中输入https://MyCompany.sharepoint.com/teams/MyProject/Shared Documents/MyExcelFile.xlsx时,它会提示我在 Excel 中打开 Excel 文档(而不是在线 Excel)。所以我的假设是该链接有效。我也尝试过使用httr包(没有运气):

data <- GET(url, authenticate("username","password",type="any"))
Run Code Online (Sandbox Code Playgroud)

任何帮助深表感谢。

excel sharepoint r

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

Rstudio pdflatex.exe 没有成功

我目前正在使用 Rstudio 和 R markdown 创建 pdf。然而,每次我尝试编织这些错误消息时都会出现:

! Sorry, but C:\Users\AP\AppData\Local\Programs\MiKTeX\miktex\bin\x64\pdflatex.exe did not succeed.

! The log file hopefully contains the information to get MiKTeX going again:

!   C:\Users\AP\AppData\Local\MiKTeX\miktex\log\pdflatex.log

Error: LaTeX failed to compile new-report.tex. See https://yihui.org/tinytex/r/#debugging for debugging tips. See c2089682-report.log for more info.
In addition: Warning message:
In has_crop_tools() : 
Tool(s) not installed or not in PATH: ghostcript
-> As a result, figure cropping will be disabled.
Execution halted
Run Code Online (Sandbox Code Playgroud)

我尝试卸载/重新安装 MiKTex 并重新启动 Rstudio,但问题仍然存在。我该如何解决这个问题?

latex r miktex r-markdown

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