小编Kim*_*Kim的帖子

如何使用 visreg 和 ggplot2 更改轴标签

我正在使用该visreggg = TRUE(因此它将使用ggplot2图形)来渲染我的拟合模型图。

它会自动使用自变量因子的名称作为 x 轴标签,但我需要它们的外观略有不同,并尝试使用scale_x_discrete可以在此处看到的更改标签文本。

但是当我这样做时,x 轴标签、轴线及其标题变为空白。我相信我没有将labels参数映射到breaks参数。

我也收到消息

'x' 的比例已经存在。为“x”添加另一个比例,这将替换现有比例。

问题可能在于如何visreg存储变量(及其级别)信息。ggplot2单独使用时,可以使用data$variablename. 但是通过visreg这个创建基本情节并不是那么简单。

我已经尝试过的:

  • 使用默认绘制的变量级别名称作为中断。
  • 尝试使用fit$xlevels$Species.
  • 猜测visreg可能是将整数作为级别并尝试使用 breaks = c(as.factor("1","2","3")).

如何重现问题:

library(visreg)
library(ggplot2)

data(iris)
fit <- lm(Sepal.Length ~ Species, data = iris)

visreg(fit, gg = T) +
  theme(axis.line = element_line(colour = "black")) +
  scale_x_discrete(breaks = c("setosa", "versicolor", "virginica"),
                   labels = c("SETOSA", "VERSICOLOR", "VIRGINICA")) …
Run Code Online (Sandbox Code Playgroud)

plot r ggplot2 visreg

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

使用taskkill停止Windows服务

我需要帮助来使用 C# 终止 Windows 服务,现在要终止该服务,请使用以下选项:

从命令:

sc queryex ServiceName
Run Code Online (Sandbox Code Playgroud)

发现PID服务后

taskkill /pid 1234(exemple) /f
Run Code Online (Sandbox Code Playgroud)

c# windows service taskkill

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

数据框中的杂乱日期格式

我为自己创建了一个我无法解决的任务 - 有一个数据框,其中包含某些项目的开始日期和结束日期.某些元素是错误的,并显示项目的持续时间而不是结束日期.

start_date <- c("2017-05-04", "2016-04-01", "2013-12-12", "2011-05-11", "2010-04-10", "2009-01-01")
end_date <- c("2020-01-01", "2020-01-06", "3 years", "36 months", "2020-01-01", "2020-01-01")
df <- data.frame(start_date, end_date)

start_date   end_date
1 2017-05-04 2020-01-01
2 2016-04-01 2020-01-06
3 2013-12-12    3 years
4 2011-05-11  36 months
5 2010-04-10 2020-01-01
6 2009-01-01 2020-01-01
Run Code Online (Sandbox Code Playgroud)


如何计算它们并转换成日期格式?此外,数据结构start_dateend_date因素.

r dataframe data-cleaning

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

错误:嵌套函数中的"找不到对象"

我正在使用logistf::logistflogistf::forward函数编写函数.我会在这里给使用最少的工作示例sex2logistf包.

data(sex2)
fwSel <- function(datamod) {
  fitnull <- logistf(case ~ 1, data = datamod, pl = FALSE) 
  fw <- forward(fitnull)
  return(fw)
}
fwSel(sex2)
Run Code Online (Sandbox Code Playgroud)

我得到以下输出:

第0步:开始模型

is.data.frame(data)出错:找不到对象'datamod'.

对此有任何解释吗?

r function logistf

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

R - 替换正则表达式中的第 1 组匹配但不是完整匹配

假设我想提取字母a和之间的所有字母c。到目前为止,我一直在使用这个stringr软件包,它可以清楚地了解完整的比赛和分组。例如,该包将给出以下内容。

library(stringr)
str_match_all("abc", "a([a-z])c")
# [[1]]
#     [,1]  [,2]
# [1,] "abc" "b" 
Run Code Online (Sandbox Code Playgroud)

假设我只想替换该组,而不是完整的匹配项——在本例中为字母b. 然而,以下内容将取代完整的匹配。

str_replace_all("abc", "a([a-z])c", "z")
[1] "z"
# Desired result: "azc"
Run Code Online (Sandbox Code Playgroud)

有什么好的方法可以只替换捕获组吗?假设我想做多场比赛。

str_match_all("abcdef", "a([a-z])c|d([a-z])f")
# [[1]]
#      [,1]  [,2] [,3]
# [1,] "abc" "b"  NA
# [2,] "def" NA   "e"
str_replace_all("abcdef", "a([a-z])c|d([a-z])f", "z")
# [1] "zz"
# Desired result: "azcdzf"
Run Code Online (Sandbox Code Playgroud)

匹配组很容易,但是当需要替换时我还没有找到解决方案。

regex r stringr

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

使用 javascript 进行 rvest 网页抓取

我试图刮掉从日常预测FiveThirtyEight使用rvest,但我感兴趣的对象似乎是一个JavaScript对象,我有困难甚至定位在哪里以及如何寻找。(我不精通 CSS 或 Javascript,尽管我在过去几天尝试自学。)

通过检查网页元素和 CSS 选择器,我发现了以下内容:

  • 要查看的位置是<div id="polling-avg-chart">,所以我尝试了

    library(rvest)
    url <- 
      "https://projects.fivethirtyeight.com/election-2016/national-primary-polls/democratic/"
    
    url %>% 
      read_html() %>% 
      html_nodes("#polling-avg-chart")
    
    Run Code Online (Sandbox Code Playgroud)

    没有太大的成功。输出很简单

    {xml_nodeset (1)}

    [1] <\div id="polling-avg-chart"></div>\n

  • 以点为单位的单个投票结果在 中<g style="clip-path: url("#line-clippoll_avg");"> ... </g>,您可以在其中看到 502 个位置的数字。我猜,我将不得不转换cxcy每个节点到相应的百分比,这是做的<g class="flag-box" transform="translate(30, 161.44093322753096)">...</g>等等。

  • 但是,我没有看到预测线的基础数据,而不是点。

  • 当我将光标悬停在图表上时,我会看到诸如<line class="hover-date-line hide-line">变化之类的事物,以及诸如<path class="link" d="M 0 171.40106812500002 C 15 171.40106812500002 15 170.94093803735575 30 170.94093803735575"></path>变化之类的值,我猜测这些值是创建每日预测线的原因。
  • 但是这些值存储在哪里,以及如何将其转换回“49.1% 克林顿 vs. 26.6% 桑德斯”之类的东西对我来说仍然是个谜。

我看过一些其他职位SO如这个,但他们都不似乎适用于这一特定问题。在整洁的数据框中获得预测百分比的最佳方法是什么?

html javascript css r rvest

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

使用 RSelenium 时缩小网站而不更改页面大小/分辨率

我想缩小 RSelenium 遥控器,但这很难找到解决方案。我知道

library(RSelenium)
driver <- rsDriver()
remDr <- driver[["client"]]
remDr$navigate("https://www.google.com/")
webElem <- remDr$findElement("css", "html")
webElem$sendKeysToElement(list(key = "control", "-"))              ## Does not work
webElem$sendKeysToElement(list(key = "control", key = "subtract")) ## Does not work
Run Code Online (Sandbox Code Playgroud)

浏览器是Chrome。

selenium r selenium-webdriver rselenium

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

group_by 并保留所有不包含特定值的组并过滤有值的地方

我有以下数据框:

df <- data.frame(
  Code = c("a", "a", "a", "a", "a", "b", "b", "b", "b", "b"),
  Inst = c("Yes", "No", "No", "No", "No", "No", "No", "No", "No", "No"),
  Date = c(
    "2021-01-01", "2021-01-02", "2021-01-03", "2021-01-04", "2021-01-05", 
    "2021-01-06", "2021-01-06", "2021-01-06", "2021-01-09", "2021-01-10"
  )
)
Run Code Online (Sandbox Code Playgroud)

我想应用dplyr::group_by到变量Code并过滤特定值 "Yes" 和 minimum Date,但我想保留不包含 Yes 值的组的所有观察结果。我试过了,filter(any(Inst == "Yes"))但这不起作用。

我想要这样的结果:

Code  Inst  Date
a      Yes  2021-01-01
b      No   2021-01-06
b      No   2021-01-06
b      No   2021-01-06
Run Code Online (Sandbox Code Playgroud)

r dplyr tidyverse

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

R ggplot2::geom_vline 图例未正确显示线型

我正在尝试这个简单的任务,其中我希望向 ggplot 对象添加两条垂直线,具有不同的颜色和不同的线型,以及在图例中正确指定的颜色/线。我一直在看这篇文章,其中geom_vline绘制了两个 s 。如果您将其中一种线型更改为实线,图例将错误地显示线型。它将所有线条变成实心。

library(ggplot2)
library(ggthemes)
ggplot(aes(x = Sepal.Length), data = iris) + 
  geom_histogram(color = 'black', fill = NA) + 
  geom_vline(aes(xintercept = median(iris$Sepal.Length),
                 color = "median"), 
             linetype = "solid", size = 1) +
  geom_vline(aes(xintercept = mean(iris$Sepal.Length),
                 color = "mean"), 
             linetype = "dashed", size = 1) +
  scale_color_manual(
    name = "statistics", 
    values = c(median = "blue", mean = "red"))
Run Code Online (Sandbox Code Playgroud)

在此输入图像描述

我还简单地尝试了以下内容,没有添加任何数据:

library(ggplot2)
library(ggthemes)
ggplot() + theme_bw() + 
  geom_vline(aes(xintercept = c(0, 0.2), 
                 color = c("Zero", "Pooled")), 
             size = …
Run Code Online (Sandbox Code Playgroud)

r legend ggplot2

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