小编Jac*_*son的帖子

在不知道r中的结构的情况下设置列表

我在R中有一个列表:

my_list <- list(a = 1, b = 2, c = list(d = 4, e = 5))
Run Code Online (Sandbox Code Playgroud)

假设我不知道列表的结构,但我知道在这个列表的某个地方,有一个名为d嵌套或不嵌套的元素.我想要:

  1. 列表元素的子集,不知道包含它的主列表的结构
  2. 知道其父列表的名称(即元素c)

是否有一个简单的方法/包可以解决这个看似简单的问题?

r

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

tidyverse r 中的虚拟代码分类/序数变量

假设我有一个小玩意儿。

library(tidyverse) 
tib <- as.tibble(list(record = c(1:10), 
                      gender = as.factor(sample(c("M", "F"), 10, replace = TRUE)), 
                      like_product = as.factor(sample(1:5, 10, replace = TRUE)))
tib

    # A tibble: 10 x 3
   record gender like_product
    <int> <fctr>       <fctr>
 1      1      F            2
 2      2      M            1
 3      3      M            2
 4      4      F            3
 5      5      F            4
 6      6      M            2
 7      7      F            4
 8      8      M            4
 9      9      F            4
10     10      M            5
Run Code Online (Sandbox Code Playgroud)

我想用 1 和 0 对我的数据进行虚拟编码,以便数据看起来更多/更少像这样。 …

r dummy-variable purrr tidyverse

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

如何从不同来源启动ggplot2 geom_bar

我想在 y = 0 以外的位置开始绘制条形图。就我而言,我想在 y = 1 处开始绘制条形图。

举个例子,假设我geom_bar()使用 ggplot2 构建了恒等图表。

df <- data.frame(values = c(1, 2, 0),
                 labels = c("A", "B", "C"))

library(ggplot2)
ggplot(df, aes(x = labels, y = values, fill = labels, colour = labels)) + 
  geom_bar(stat="identity")
Run Code Online (Sandbox Code Playgroud)

在此输入图像描述

现在,我不是问如何设置比例或轴限制。我希望代表小于 1 的值的条形图从 y = 1 开始向下流动。

它需要看起来像这样......但具有不同的 y 轴:

在此输入图像描述

有什么建议吗?

r ggplot2

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

改变多个变量以创建多个新变量

假设我有一个tibble需要采取多个变量并将它们变为新的多个新变量的位置.

举个例子,这是一个简单的tibble:

tb <- tribble(
  ~x, ~y1, ~y2, ~y3, ~z,
  1,2,4,6,2,
  2,1,2,3,3,
  3,6,4,2,1
)
Run Code Online (Sandbox Code Playgroud)

我想从名称以"y"开头的每个变量中减去变量z,并将结果变为tb的新变量.另外,假设我不知道我有多少"y"变量.我希望解决方案能够很好地适应tidyverse/ dplyr工作流程.

本质上,我不明白如何将多个变量变为多个新变量.我不确定你是否可以mutate在这个例子中使用?我试过了mutate_if,但我不认为我正确使用它(我收到错误):

tb %>% mutate_if(starts_with("y"), funs(.-z))

#Error: No tidyselect variables were registered
Run Code Online (Sandbox Code Playgroud)

提前致谢!

r dplyr tidyverse tidyselect

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

将依赖项正确添加到 r 包中,以便它们自动安装

我正在制作我的第一个 R 包,并且尝试包含包依赖项。该软件包在我的机器上安装并运行良好,但我已经安装了所有依赖项。当其他用户尝试安装但他们尚未安装所有依赖项时,他们会收到错误消息。

ERROR: dependency 'dplyr' is not available for package 'my_package'
Run Code Online (Sandbox Code Playgroud)

我正在通过 记录该包roxygen2

我知道我应该在文件#'@import中包含行/R,并且它们会自动添加到DESCRIPTIONNAMESPACE文件中。

我的DESCRIPTION文件如下所示:

Package: my_package
Title: What the Package Does (one line, title case)
Version: 0.0.0.9000
Authors@R: person("First", "Last", email = "first.last@example.com", role = c("aut", "cre"))
Description: What the package does (one paragraph).
Depends: R (>= 3.4.1)
License: What license is it under?
Encoding: UTF-8
LazyData: true
RoxygenNote: 6.0.1
Imports: dplyr,
    descr
Run Code Online (Sandbox Code Playgroud)

我的NAMESPACE看起来像这样: …

r roxygen2 r-package

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

将 Shiny.tag 对象(闪亮的输入对象)转换为 html 对象或字符对象

我需要将闪亮的输入对象转换为纯 HTML。

library(shiny)
test <- selectInput("testInput", label = "", 
     choices = c("test1", "test2", "test3"), selected = "test1")
Run Code Online (Sandbox Code Playgroud)

在这个例子中,test是一个 Shiny.tag 对象。

class(test)

#[1] "shiny.tag"
Run Code Online (Sandbox Code Playgroud)

我希望它是一个 html 对象,就好像我是从文本中解析出来的一样:

test2 <- HTML('<div class="form-group shiny-input-container">
         <label class="control-label" for="testInput"></label>
         <div>
         <select id="testInput"><option value="test1" selected>test1</option>
         <option value="test2">test2</option>
         <option value="test3">test3</option></select>
         <script type="application/json" data-for="testInput" data-nonempty="">{}</script>
         </div>
         </div>')

class(test2)

#[1] "html"      "character"
Run Code Online (Sandbox Code Playgroud)

我试着像这样直接这样做:

HTML(test)

#Error in FUN(X[[i]], ...) : argument is not a character vector
Run Code Online (Sandbox Code Playgroud)

但是它需要一个字符向量,并且似乎没有将shiny.tag 对象转换为HTML 的方法。

我认为将闪亮的输入对象转换为 html 应该很容易,但不确定如何实现。

先谢谢了!

r shiny

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