使用 dplyr 对除某些列之外的所有列进行突变

2023-11-29

我发现across()对于在多个列上重复操作非常有用。 但是,我仍然没有完全理解如何选择特定列进行操作。

假设我想将一个函数应用于mtcars, except gear and carb.

我尝试过类似的东西

# Function to use over columns
demean <- function(x) {
  x - mean(x, na.rm = TRUE)
}

# Use function on all but columns gear and carb
mtcars %>% mutate(across(.cols = select(.,-gear,-carb), demean))

但是,这会引发错误

Error: Problem with `mutate()` input `..1`.
x Must subset columns with a valid subscript vector.
x Subscript has the wrong type `data.frame<

取消选择某些列的正确方法是什么across?


这比你想象的要容易:

mtcars %>% mutate(across(-c(gear, carb), demean))
                        mpg     cyl        disp       hp       drat       wt
Mazda RX4          0.909375 -0.1875  -70.721875 -36.6875  0.3034375 -0.59725
Mazda RX4 Wag      0.909375 -0.1875  -70.721875 -36.6875  0.3034375 -0.34225
Datsun 710         2.709375 -2.1875 -122.721875 -53.6875  0.2534375 -0.89725
Hornet 4 Drive     1.309375 -0.1875   27.278125 -36.6875 -0.5165625 -0.00225
Hornet Sportabout -1.390625  1.8125  129.278125  28.3125 -0.4465625  0.22275
Valiant           -1.990625 -0.1875   -5.721875 -41.6875 -0.8365625  0.24275
Duster 360        -5.790625  1.8125  129.278125  98.3125 -0.3865625  0.35275
Merc 240D          4.309375 -2.1875  -84.021875 -84.6875  0.0934375 -0.02725
Merc 230           2.709375 -2.1875  -89.921875 -51.6875  0.3234375 -0.06725
                      qsec      vs       am gear carb
Mazda RX4         -1.38875 -0.4375  0.59375    4    4
Mazda RX4 Wag     -0.82875 -0.4375  0.59375    4    4
Datsun 710         0.76125  0.5625  0.59375    4    1
Hornet 4 Drive     1.59125  0.5625 -0.40625    3    1
Hornet Sportabout -0.82875 -0.4375 -0.40625    3    2
Valiant            2.37125  0.5625 -0.40625    3    1
Duster 360        -2.00875 -0.4375 -0.40625    3    4
Merc 240D          2.15125  0.5625 -0.40625    4    2
Merc 230           5.05125  0.5625 -0.40625    4    2
 [ reached 'max' / getOption("max.print") -- omitted 23 rows ]
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

使用 dplyr 对除某些列之外的所有列进行突变 的相关文章

  • 使用多边形图层下方的轮廓线切割多边形

    我想根据高程将多边形图层切割成两部分 上部和下部 多边形可能是凸的或凹的 并且切割的位置可能彼此不同 等高线的间隔为 5m 这意味着我可能需要生成一个具有更紧凑的等高线的等高线 例如 1m 的间隔 关于如何做到这一点的任何想法 在 ArcG
  • 闪亮的仪表板侧边栏中的可折叠菜单项

    我的侧边栏中有两个菜单项 目前 如果我单击任何菜单项 则会显示所有菜单项的选项卡项 我想让它可折叠 如果我单击多个名称菜单 单个分析应该折叠 如果我单击单个分析 多个分析应该折叠 目前的设计是 相同的可重现代码是 library shiny
  • ggplot2 中的颜色和填充参数有什么区别?

    ggmap location geom density 2d aes long lat df geom point aes long lat color special alpha 0 5 data df 当我更改填充颜色时 我看不出有什么
  • R:igraph、社区检测、edge. Betweenness 方法、统计/列出每个社区的成员?

    我有一个相对较大的图表 其中顶点 524 边 1125 是现实世界的交易 边是有向的并且具有权重 包含是可选的 我正在尝试调查图中的各个社区 并且本质上需要一种方法 计算所有可能的社区 计算最佳社区数量 返回每个 最佳 社区的成员 成员数量
  • 省略 RColorBrewer 调色板上较亮的颜色以在 ggplot2 中使用

    我想在 RColorBrewer 的 Oranges 调色板中使用较深的颜色 以便在我的 ggplot 条形图 中使用 然而我却做不到 帮助 下面是示例代码 my palette brewer pal n 9 Oranges 4 9 Bar
  • 缩放geom_密度以将geom_bar与y上的百分比相匹配

    因为我对数学感到困惑上次我尝试问这个问题 https stackoverflow com questions 32412805 ggplot2 histogram with density curve that sums to 1 这是另一
  • 当我添加形状时,分组哑铃图变得不稳定

    我有以下数据显示白人与黑人在各个领域的一致性百分比 我想创建一个分组哑铃图 其中国家值和州值彼此相邻 以便于比较 Domain c A B C D E F G A B C D E F G A B C D E F G A B C D E F
  • 将 r 中的一列从出生日期更改为年龄

    我是第一次使用 data table 我的表中有大约 400 000 个年龄的列 我需要将它们从出生日期转换为年龄 做这个的最好方式是什么 我一直在思考这个问题 到目前为止对这两个答案都不满意 我喜欢用lubridate 就像 KFB 所做
  • 计算数据集列的百分位数

    最亲爱的 R 专家 为您快速介绍一下 我正在做一项作业 在这个练习中 我被要求从数据中获取基本统计数据infert数据集 它是内置的 特别是其中的一列 infert age 对于不熟悉数据集的人 gt table ages Which is
  • 从 r 中的多个列表创建二进制(存在/不存在)数据矩阵

    我有一系列不同长度的单独变量列表 字符串 我想将它们组合成一个数据帧以形成存在 1 不存在 0 矩阵 鉴于它们的长度不同 我什至不知道如何创建初始数据框 这是我的例子 data1 lt c a b c d e f data2 lt c e
  • 导出绘图变量显示空白图像

    我正在使用 JRI 进行 java 和 R 集成 请找到下面的脚本 String path C Users hrpatel Desktop CSVs DataNVOCT csv rengine eval library tseries re
  • 从数据帧创建 sf 多边形

    我有一个包含一组多边形坐标的数据框 这就是我将其转换为spatialPolygons 包sp 的方法 my df lt data frame Plot c A A A A A B B B B B Corner c SW NW NE SE S
  • 相对于时间求平均值

    我有以下带有日期时间和相应值的数据集 时间间隔为每10分钟一次 我需要以 15 分钟的间隔生成新行 例如 15 40 的值为 599 15 50 的值为 594 因此需要在两者之间生成一个新行 即 15 45 的平均值为 599 和 594
  • 使用带有字边界的 mgsub 函数作为替换值

    我试图用空格替换向量中字符串元素的子字符串 以下是我们正在考虑的向量 test lt c PALMA DE MALLORCA THE RICH AND THE POOR A CAMEL IN THE DESERT SANTANDER SL
  • 在 R 中将 ascii 数字转换为字符串

    要将 R 中的字符串转换为 ascii 代码 我通常使用 gt strtoi charToRaw abcd 16L 1 97 98 99 100 是否有一个函数可以做相反的事情 即 gt myDesiredFunc c 97 98 99 1
  • 如何将曲线拟合到直方图

    我已经探讨了有关该主题的类似问题 但在我的直方图上生成漂亮的曲线时遇到了一些麻烦 我知道有些人可能会认为这是重复的 但我目前还没有找到任何可以帮助解决我的问题的东西 尽管数据在此处不可见 但这里是我使用的一些变量 以便您可以在下面的代码中看
  • 如何从 Matlab 运行 R 脚本 [重复]

    这个问题在这里已经有答案了 我有 m 文件 我想用它来运行 R 脚本 我怎样才能做到这一点 Matlab文件 caller m some matlab code need to call a R script some matlab cod
  • R 彩色树状图建议?

    我想制作彩色树状图 但尚未找到足够的库 http addictedtor free fr graphiques RGraphGallery php graph 79 http addictedtor free fr graphiques R
  • R 计算股票的 beta(使用 PerformanceAnalytics CAPM.beta() 函数或 lm() 函数产生意外结果)

    我正在尝试使用 PerformanceAnalytics CAPM beta 函数量化 R 中股票的 beta 基准测试与 SPY 结果甚至与我在 Yahoo Google Finance 在线看到的值不接近 代码 require Perf
  • 将数据帧单列中的值向上移动

    使用这样的示例数据 example data frame x c 1 2 3 4 5 6 7 8 y c 1 2 3 4 5 6 7 8 z c 1 2 3 4 5 6 7 8 看起来像这样 x y z 1 1 1 1 2 2 2 2 3

随机推荐