【问题标题】:Select multiple variables in r / rstudio to insert in a code在 r / rstudio 中选择多个变量以插入到代码中
【发布时间】:2021-01-01 15:49:10
【问题描述】:

我想知道是否有办法在编写代码时选择多个变量。我的意思是当我们输入数据框名称后跟 $ 时,我们会得到所有变量的列表,但它只允许一次选择一个。

是否有允许选择多个的方法(如包或 rstudio 插件)?

到目前为止我一直在做的是(我从这个2012 post 得到了想法):

  • 使用dput(names(dataframe))然后选择我需要的内容
  • 使用 dplyr 中的 starts_with、ends_with、contains 等(但这些仅在感兴趣的变量具有唯一模式时才有效)。

有了所有这些不错的 rstudio 插件,我希望有一种更好/更有效的方法来选择变量,而不必单独键入它们。

这听起来像是一个基本问题,如果之前有人问过,我提前道歉,但我在这里或 stackoverflow 上找不到答案。

非常感谢

【问题讨论】:

  • 您是否正在寻找无需输入的图形?使用来自dplyrselect() 也允许一个范围。所以你可以做df %>% select(col1:col10) 或类似的事情。从第二次阅读开始,您似乎在谈论 RStudio 中的自动完成功能,以及您基本上想要多选或复选框?

标签: r rstudio add-in


【解决方案1】:

以下解决方案都不是 R Studio 特有的,而是 R 或 dplyr 中的通用工具。

必须有某种方式来选择它们,所以如果没有通用模式,您可以明确列出它们或使用它们的位置。然后其中任何一个都将选择列——在本例中,mpgcyl 列来自 mtcars

nms <- c("mpg", "cyl")
# or nms <- 1:2

mtcars[nms]
mtcars[, nms]
subset(mtcars, select = nms)
dplyr::select(mtcars, all_of(nms))

或者,如果您想指定与内容相关的查询,请使用以下之一:

iris[ sapply(iris, is.numeric) ]

dplyr::select(iris, where(is.numeric))

如果您的意思是希望 GUI 在特定数据框中显示可用名称,以便您可以交互地选择它们,然后使用它(见最后的屏幕截图):

select.list(names(mtcars), multiple = TRUE)

library(tcltk)
tk_select.list(names(mtcars), multiple = TRUE)

【讨论】:

  • 感谢您的帮助。是的,我正在寻找一个 GUI 选项。我不知道为什么 rstudio 不包含这个 tk_select.list 以在我们将 $ 放在数据框名称之后出现!
  • tk_select.list 确实需要您加载 tcltk,即library(tcltk),但 tcltk 是 R 附带的基础包,因此如果您使用任何常见的 R,则无需安装它分布。如果您构建了自己的 R 安装,那么您必须确保在构建它时存在 tcl/tk。如果您在没有它的情况下构建 R,则无法在之后添加它。查看capabilities() 以查看您的安装是否具有 tcltk 功能。
  • tcltk 为我工作。我的意思是,如果 rstudio 中“$”之后显示的菜单允许多个选择(而不是一次只有一个),那会更好。几年前,我使用了一种叫做 deducer 的东西,它是一个基于 java 的 r gui,它有一个出色的变量选择界面。我只是觉得有效的变量选择会在代码编写过程中节省一些时间,并且不太容易出现打字错误。
  • 即使在 R Studio 之外,$ 也永远无法指定多个值,所以这可能是您无法理解的原因。
  • 我明白了,但想知道是否有插件或类似功能的东西。我会留下这个问题,以防万一有人更了解这类问题。谢谢。
猜你喜欢
  • 2020-10-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2018-11-07
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多