R:动态更新公式

2024-03-29

如何动态更新公式?

Example:

myvar <- "x"

update(y ~ 1 + x, ~ . -x)
# y ~ 1 (works as intended)

update(y ~ 1 + x, ~ . -myvar)
# y ~ x (doesn't work as intended)

update(y ~ 1 + x, ~ . -eval(myvar))
# y ~ x (doesn't work as intended)

您可以使用paste()update()call.

myvar <- "x"
update(y ~ 1 + x, paste(" ~ . -", myvar))
# y ~ 1

Edit

正如 @A.Fischer 在评论中指出的,如果myvar是长度 > 1 的向量

myvar <- c("k", "l")
update(y ~ 1 + k + l + m, paste(" ~ . -", myvar))
# y ~ l + m
# Warning message:
# Using formula(x) is deprecated when x is a character vector of length > 1.
#   Consider formula(paste(x, collapse = " ")) instead.

只是“k”被删除,但“l”仍然保留在公式中。

在这种情况下,我们可以将公式转换为字符串,添加/删除我们想要更改的内容并使用以下命令重建公式reformulate, 就像是:

FUN <- function(fo, x, negate=FALSE) {
  foc <- as.character(fo)
  s <- el(strsplit(foc[3], " + ", fixed=T))
  if (negate) {
    reformulate(s[!s %in% x], foc[2], env=.GlobalEnv)
  } else {
    reformulate(c(s, x), foc[2], env=.GlobalEnv)
  }
}

fo <- y ~ 1 + k + l + m

FUN(fo, c("n", "o"))  ## add variables
# y ~ 1 + k + l + m + n + o
FUN(fo, c("k", "l"), negate=TRUE))  ## remove variables
# y ~ 1 + m
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

R:动态更新公式 的相关文章

  • 如何使用 grid.arrange 移动图例位置

    我试图在一页中排列 4 个图 将图例放在底部中心 我用它来获取其中一个图的图例 因为它们对于四个图来说是相同的 get legend lt function myggplot tmp lt ggplot gtable ggplot buil
  • svyby比例的置信区间

    是否存在创建置信区间的现有函数 从一个svyby比例对象 在我的例子中 是一个二进制项目的交叉表survey包裹 我经常比较各组之间的比例 如果有一个可以提取置信区间的函数 使用调查函数svyciprop而不是confint 下面的示例显示
  • R Leaflet:添加多边形时传递 popupOptions。

    Within addPolygons 有一个popup参数就像addPopups 功能 区别 我认为 是当弹出窗口创建时addPolygons 可以单击多边形内的任意位置来触发弹出窗口 但是如果addPopups 被使用 单个lng and
  • 如何正确调整 R 中 ggplot 的各个方面的大小,包括图例?

    我在 ggplot2 中制作散点图 然后使用 ggsave 导出特定宽度和高度的 PDF 但是 图形图例永远不会使用 ggsave 正确调整大小 其边框不会留在绘图内 是否有另一种方法可以同时调整 ggplot 所有部分的大小以便于导出 我
  • R Shiny UI 子选项复选框?

    我有一个基本的 RShiny 应用程序 它有一个反应式复选框 它根据复选框中选择的数据 df 列 绘制时间序列数据 我当前的代码生成一个带有复选框输入的 UI 如下所示 Load R packages library shiny libra
  • R(或替代方案?)中的高(或非常高)阶多项式回归

    我想对 R 中的一组数据进行 非常 高阶回归拟合 但是poly 函数的阶数极限为 25 对于此应用程序 我需要的订单范围为 100 到 120 model lt lm noisy y poly q 50 Error in poly q 50
  • R 在读取文件时添加额外的数字

    我一直在尝试读取一个包含日期字段和数字字段的文件 我的数据在 Excel 工作表中 如下所示 Date X 1 25 2008 0 0023456 12 23 2008 0 001987 当我在 R 中使用readxl read xlsx函
  • 根据条件计算平均值

    下面是我的数据框 Row ID A B 1 0 0 2 0 0 3 0 0 4 0 1 5 0 1 6 0 1 7 62 75 0 8 100 0 9 100 0 10 100 1 11 100 1 12 100 1 13 100 1 14
  • 使用cowplot包的多重图的中心X轴标签

    我有一个多图图形 由 2x2 配置中的 4 个图组成 我使用 cowplot 包和plot grid函数使用下面的代码排列了绘图 plot grid p1 p2 p3 p4 align vh vjust 1 scale 1 其中 p1 p4
  • 确定 R 中的组是否重复某个值

    我有一个包含许多列和行的数据 我想通过创建新的逻辑变量来确定某个组的值是否重复 相同 所以我的数据如下所示 v0 lt c 1 2 3 4 5 6 7 8 9 v1 lt c a b a c e c b b e v2 lt c R NA R
  • 如何替换R中的“意外转义字符”

    当我尝试从 Facebook URL 的字符对象解析 JSON 时 我收到 fromJSON data 中的错误 位置 130 处出现意外的转义字符 o 看一下这个 library RCurl library rjson data lt g
  • 如何使用 ggplot2 绘制 NA 间隙

    在 R 的基本绘图中 如果数据系列 ggplot2 中存在 NA 则会绘制间隙 举个例子看看 df data frame x c 1 10 y c 1 10 df 5 7 NA plot df type l 但是 ggplot2 删除了缺失
  • R testthat 单元测试数据和辅助函数约定

    我正在编写一个 R 包 并使用 testthat 进行单元测试 我的许多单元测试都是为了测试适用于我的包特定对象的功能 对于这些测试 我创建了一个辅助函数来设置模拟对象 我还有一些其他辅助函数来减少单元测试中的代码量 目前这些辅助函数在我的
  • 通过删除连续的重复项来减少字符串长度

    我有一个包含 2 个字段的 R 数据框 ID WORD 1 AAAAABBBBB 2 ABCAAABBBDDD 3 我想通过仅保留字母而不是重复中的重复项来简化具有重复字母的单词 e g AAAAABBBBB应该给我AB and ABCAA
  • 如何在environment.yml中安装CRAN包

    我正在使用 miniconda 来管理数据科学包的安装 这是我现在已经建立的工作流程 所以我希望它也能在这种情况下工作 我也认为它可以工作 因为它应该在这样的情况下有所帮助 比纯 python 需要更多的依赖项 我想安装pythonCDT工
  • R:install.packages 中出现错误:无法打开连接

    我试图安装 RINDSEL 包 但无法安装它 并且不断收到以下错误 install packages 中出错 无法打开连接 我从以下位置下载了该软件包 rindsel 1 0 2 zip 综合养殖平台 http old ibpdev net
  • 如何拆分 data.frame -> 将合并应用于子集 -> 合并到 data.frame 中

    我真的不知道如何在不使用 for 循环的情况下实现这一目标 x lt c a b c d gt x 1 a b c d data lt data frame x c a b a b c a a b c d name c one one tw
  • ggplot() 使用scale::percent_format() 缩放产生奇怪的结果

    library tidyverse mtcars gt count cyl gt mutate prop n sum n gt ggplot aes x cyl y prop geom point scale y continuous la
  • 如何在主图区域之外的 ggplot2 中添加多个标题

    我想为页脚添加两个标题 但 ggplot 似乎只需要 1 是否有解决方法可以将注释或 geom text 添加到左下角和右下角 library ggplot2 p lt ggplot mtcars aes x wt y mpg geom p
  • 如何在 R 树形图中省略标签?

    我一直在使用R 树形图包 http cran r project org web packages treemap treemap pdf我有一个 2 层深的树形图 我希望打印第二级标签 但不打印第一级标签 使用手册页中的示例 tmPlot

随机推荐

  • Android 上的 AWS CloudWatch Log

    我正在尝试在 Android 应用程序中使用 AWS CloudWatch Log 我对 aws client 有以下配置 val basicAWSCredentials BasicAWSCredentials Xxxxxx Yyyyyy
  • 字符串交错的动态规划问题解决方案

    我试图解决这个问题 但我放弃了 找到了下面的解决方案 尽管我不明白该解决方案是如何工作的 或者为什么它有效 任何深入的解决方案将不胜感激 问题 Given s1 s2 s3 求是否s3由交错形成s1 and s2 例如 给定 s1 aabc
  • 如何从 python 中的命名元组中获取名称?

    我创建一个像这样的命名元组 from collections import namedtuple spam namedtuple eggs x y z ham spam 1 2 3 然后我可以使用例如访问火腿的元素 gt gt gt ham
  • 禁用部分内容的 CSS

    我正在使用 Yii bootstrap 扩展 但遇到一些样式问题 因为 bootstrap css 文件影响页面的主要内容 我的主要内容是使用 OpenLayers 完成的地图 因此我在它们之间混合样式时遇到了一些问题 我尝试做一个更通用的
  • 没有 v-model 的 Vue.JS 复选框

    尝试在不使用 v model 的情况下创建复选框
  • 服务层/存储库模式

    我正在使用 EF4 的服务层 存储库 工作单元模式构建一个 MVC 应用程序 我对逻辑有点困惑 我知道重点是解耦系统 但我有点困惑 因此 MVC 控制器调用服务来填充视图模型 那么可以肯定地说 MVC 应用程序耦合到服务层吗 然后服务层调用
  • sqlite3 - 插入 - javascript 对象作为值

    使用 javascript 对象作为 sqlite3 插入的值的最简单的解决方案是什么 下面的代码不起作用 const values name John age 34 language english db run INSERT INTO
  • 为什么 lodash 在否定函数中使用 switch-case? [复制]

    这个问题在这里已经有答案了 下面的代码是源码negateLodash 中的函数 我们可以看到 当参数长度小于4时 它使用switch case而不是使用apply直接地 这段代码有什么魔力呢 它会使性能更好吗 为什么分割点是4 functi
  • 如何更改 django runserver url?

    我正在尝试更改 django 项目 url 以便想要连接到局域网中网站的用户将看到 url 而不是 localhost 8000 或 127 0 0 1 我需要将 localhost 8000 users board 更改为http exa
  • Rails Engine + Mongoid:找不到名为“default”的会话的配置

    我创建了一个 Rails Mountable 应用程序并添加了 mongoid 和 rspec gem 如果我现在尝试运行我的规范 我会收到以下错误 Mongoid Errors NoSessionConfig Problem No con
  • HTML5 本地存储和变量类型

    我正在对 HTML5 中的本地存储进行一些测试 注意我使用的是 Safari 6 0 2 因为似乎许多 Web 引擎处理它们的方法不同 如果我这样做 localStorage setItem subTotal Number 12345 I
  • JavaScript 字符串连接速度

    有人可以向我解释一下这个吗 http jsperf com string concatenation 1 2 http jsperf com string concatenation 1 2 如果你很懒 我测试了 A 和 B A var i
  • ExecutorService workStealingPool 和取消方法

    您能想到为什么这段代码不起作用并且总是输出 完成 但第二个示例可以正常工作的任何原因吗 我正在使用最新的 JDK 8u45 public static class MyClass implements Runnable Override p
  • 将猫鼬流转换为数组

    我曾经使用过 mongodb 但对 mongoose ORM 还很陌生 我试图从集合中获取数据 explain 输出显示 50 毫秒 通过 mongoose 获取数据的总时间为 9 秒 这是查询 Node find dataset data
  • 无法在 Spring Boot 2(版本 2.0.0.M7)中包含 Prometheus 指标

    无法在 Spring Boot 2 版本 2 0 0 M7 项目中包含 Prometheus 指标 根据千分尺文档 https micrometer io docs ref spring 2 0 prometheus added sprin
  • 使用facet_wrap 设置中间的最后一个图

    我正在尝试使用facet wrap 创建一些多重图 但是我不确定这是否是适合我的图表的正确方法 这是一个简短的可重现示例 ggplot airquality aes x Day y Temp facet wrap Month geom li
  • Rails 的 recaptcha 插件

    我目前正在使用 ambethia 的 Rails recaptcha 插件 我想禁用该消息 验证码错误 每当用户错误地输入错误的验证码时 我该怎么做呢 在源文件中 我得到了围绕错误消息的以下标签 p class recaptcha erro
  • 将现有 asp.net-mvc 站点的一些调用公开给 Intranet 内的其他 REST 客户端?

    我有一个现有的 asp net mvc 网站 现在我需要公开一些对外部应用程序的调用 这些应用程序目前仅在我的网站中使用 这一切都发生在我公司的内部网内 我读过了这一页 http www binaryintellect net articl
  • Nestjs循环依赖forwardRef()的缺点

    官方循环依赖 https docs nestjs com fundamentals circular dependency says 当两个类相互依赖时 就会发生循环依赖 例如 类 A 需要类 B 类 B 也需要类 A 模块之间和提供程序之
  • R:动态更新公式

    如何动态更新公式 Example myvar lt x update y 1 x x y 1 works as intended update y 1 x myvar y x doesn t work as intended update