如何使用 dplyr::mutate_all 对选定列进行舍入

2024-02-01

我正在使用以下软件包版本

# devtools::install_github("hadley/dplyr")
> packageVersion("dplyr")
[1] ‘0.5.0.9001’

带有以下小标题:

library(dplyr)
df  <- structure(list(gene_symbol = structure(1:6, .Label = c("0610005C13Rik", 
"0610007P14Rik", "0610009B22Rik", "0610009L18Rik", "0610009O20Rik", 
"0610010B08Rik"), class = "factor"), fold_change = c(1.54037, 
1.10976, 0.785, 0.79852, 0.91615, 0.87931), pvalue = c(0.5312, 
0.00033, 0, 0.00011, 0.00387, 0.01455), ctr.mean_exp = c(0.00583, 
59.67286, 83.2847, 6.88321, 14.67696, 1.10363), tre.mean_exp = c(0.00899, 
66.22232, 65.37819, 5.49638, 13.4463, 0.97043), ctr.cv = c(5.49291, 
0.20263, 0.17445, 0.46288, 0.2543, 0.39564), tre.cv = c(6.06505, 
0.28827, 0.33958, 0.53295, 0.26679, 0.52364)), .Names = c("gene_symbol", 
"fold_change", "pvalue", "ctr.mean_exp", "tre.mean_exp", "ctr.cv", 
"tre.cv"), row.names = c(NA, -6L), class = c("tbl_df", "tbl", 
"data.frame"))

看起来像这样:

> df
# A tibble: 6 × 7
    gene_symbol fold_change  pvalue ctr.mean_exp tre.mean_exp  ctr.cv  tre.cv
         <fctr>       <dbl>   <dbl>        <dbl>        <dbl>   <dbl>   <dbl>
1 0610005C13Rik     1.54037 0.53120      0.00583      0.00899 5.49291 6.06505
2 0610007P14Rik     1.10976 0.00033     59.67286     66.22232 0.20263 0.28827
3 0610009B22Rik     0.78500 0.00000     83.28470     65.37819 0.17445 0.33958
4 0610009L18Rik     0.79852 0.00011      6.88321      5.49638 0.46288 0.53295
5 0610009O20Rik     0.91615 0.00387     14.67696     13.44630 0.25430 0.26679
6 0610010B08Rik     0.87931 0.01455      1.10363      0.97043 0.39564 0.52364

我想将浮点数(从第二列开始)四舍五入为 3 位数字。有什么方法可以做到这一点dplyr::mutate_all()

我试过这个:

cols <- names(df)[2:7]
# df <- df %>% mutate_each_(funs(round(.,3)), cols)
# Warning message:
#'mutate_each_' is deprecated.
# Use 'mutate_all' instead.
# See help("Deprecated") 

df <- df %>% mutate_all(funs(round(.,3)), cols)

但出现以下错误:

Error in mutate_impl(.data, dots) : 
  3 arguments passed to 'round'which requires 1 or 2 arguments

虽然新的across()函数比前面的稍微详细一些mutate_if变体,即dplyr 1.0.0更新使 tidyverse 语言和代码更加一致和通用。

这是对指定列进行舍入的方法:

df %>% mutate(across(2:7, round, 3))# 第 2-7 列(按位置)

df %>% mutate(across(cols, round, 3))# 由变量指定的列cols

以下是将所有数字列四舍五入到小数点后 3 位的方法:

df %>% mutate(across(where(is.numeric), round, 3))

这是对所有列进行四舍五入的方法,但在这种情况下不起作用,因为gene_symbol不是数字:

df %>% mutate(across(everything(), round, 3))

我们放在哪里where(is.numeric) in across的参数,您可以放入其他列规范,例如-1 or -gene_symbol排除第 1 列。请参阅help(tidyselect)以获得更多选择。


dplyr 1.0.0 更新

The across()函数替换了 _if/_all/_at/_each 变体dplyr verbs. https://dplyr.tidyverse.org/dev/articles/colwise.html#how-do-you-convert-existing-code https://dplyr.tidyverse.org/dev/articles/colwise.html#how-do-you-convert-existing-code


旧答案: 由于某些列不是数字,您可以使用mutate_if具有舍入列的额外好处当且仅当(当且仅当)它是数字时:

df %>% mutate_if(is.numeric, round, 3)

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何使用 dplyr::mutate_all 对选定列进行舍入 的相关文章

  • 使用 R Shiny 从 XLConnect 下载 Excel 文件

    有没有人尝试过使用 R Shiny 中的下载处理程序通过 XLConnect 下载新创建的 Excel 文件 在 ui R 中有一行不起眼的行 downloadButton downloadData Download 在 server R
  • 替换列表列表中的元素

    The applyR 中的函数是简化 for 循环以获得输出的好方法 是否有一个等效的函数可以帮助人们在替换向量的值时避免 for 循环 通过示例可以更好地理解这一点 Take this list for example x list li
  • R::bigmemory - 如何创建角色big.matrix?

    我尝试使用bigmemory封装在R我一开始就陷入困境 我愿意 temp lt matrix paste a 1 10 5 2 并得到一个字符矩阵 没关系 但后来我尝试 x lt as big matrix temp type char 我
  • 如何对同一列上的数据帧列表中的所有数据帧进行排序?

    我有一个数据框列表dataframes list 举个例子 我把dput dataframes list 在底部 我想对列列表中的所有数据框进行排序enrichment 我可以对一个数据框进行排序 first dataframe lt da
  • 计算例如具有多列 data.frames 的列表中的平均值

    我有几个 data frames 的列表 每个 data frame 有几列 通过使用mean mylist first dataframe a我可以得到这个 data frame 中 a 的平均值 但是我不知道如何计算列表中存储的所有 d
  • 如何在R中删除重复项

    我有一个非常大的数据集 如下所示 df lt data frame school c a a a b b c c c year c 3 3 1 4 2 4 3 1 GPA c 4 4 4 3 3 3 2 2 school year GPA
  • kableExtra 中的 row_spec() 函数不会在 html 输出中创建水平线

    我想在 kableextra 表中的某一行下方添加一条水平线 row spec 函数的参数 hline after 应该在行下方添加水平线 row spec 文档 https www rdocumentation org packages
  • 在 R 中创建一个运行计数变量?

    我有一个足球比赛结果的数据集 我希望通过创建一组类似于世界足球 Elo 公式的运行评级来学习 R 我遇到了麻烦 在 Excel 中看似简单的事情在 R 中并不完全直观 例如 4270 个观察中的前 15 个具有必要的变量 date t 1
  • R中的一元加/减是什么?

    来自 R 的详细信息部分Syntax http stat ethz ch R manual R patched library base html Syntax html帮助页面 定义了以下一元和二元运算符 他们被列出 在优先级组中 从最高
  • 我无法下载 R 中的 reshape2 包 [关闭]

    Closed 这个问题是无法重现或由拼写错误引起 help closed questions 目前不接受答案 我在尝试安装 R 包时收到此响应 gt installed packages reshape2 Package LibPath V
  • 选择 R 中的数据表中隐藏时(在绿色加号下方)列的显示顺序

    Context 使用 DataTables 库制作交互式表格时 当屏幕宽度对于列的数量和宽度来说太窄时 列将隐藏在绿色 号下 我有一个非常宽的表格 有 20 多列 其中一些内容非常冗长 因此某些列在所有屏幕宽度下总是隐藏的 每次隐藏新列时
  • 将绘图调用拆分为多个块

    我正在编写一个图的解释 其中我基本上将在第一个块中创建图 然后描述该输出 并在第二个块中添加一个轴 然而 似乎每个块都会强制一个新的绘图环境 因此当我们尝试使用以下命令运行块时会出现错误axis独自的 观察 output html docu
  • 绘制点之间的所有线

    我有以下 R 代码 x lt c 0 01848598 0 08052353 0 06741172 0 11652034 y lt c 0 4177541 0 4042247 0 3964025 0 4074685 d lt data fr
  • 在 R 中创建虚拟变量,排除某些情况为 NA

    我的数据看起来像这样 V1 V2 A 0 B 1 C 2 D 3 E 4 F 5 G 9 我想创建一个虚拟变量R where 0 1 1 2 3 4 and NA 0 5 9 应该很简单 有人可以帮忙吗 我们可以转换V2 into a fa
  • Purrr::map_df() 删除 NULL 行

    使用时purrr map df 我偶尔会传递一个数据框列表 其中一些项目是NULL 当我做 map df 返回行数少于原始列表的数据框 我想发生的事情是这样的map df calls dplyr bind rows 它忽略了NULL价值观
  • 在 R 中使用 lapply 绘制多个数据帧

    我正在尝试使用 lapply 函数绘制多个数据帧 每个数据帧一个图 但是尽管有关此主题的所有帖子我都找不到答案 因为我不断收到错误 图的输出列表为空 我的数据结构如下 df1 lt mtcars gt group by cyl gt tal
  • ggplot2 geom_密度和geom_histogram在一个图中

    如何制作一个所有条形加起来为 1 的直方图 并在适合的上方添加一个密度层 set seed 1234 df lt data frame sex factor rep c F M each 200 weight round c rnorm 2
  • 更改闪亮 R 中的默认浏览器

    我在 RStudio 中使用 01 hello 虽然在 IE 中默认打开程序时它不会显示直方图 但即使在 Chrome 中 滑块也不起作用 我无法滑动条形图并看到直方图中的变化 如何更改 R 中的默认浏览器 以便闪亮启动 Chrome 而不
  • 旋转 Markdown 的表格 pdf 输出

    我想将 pdf 上的表格输出旋转 90 度 我正在使用 Markdown 生成报告并kable循环显示表格 如果可以的话我想继续使用kable因为还有很多其他依赖于它的东西我没有包含在这个 MWE 中 这是一个简单的例子 使用iris数据集
  • 如何仅删除单括号并保留配对的括号

    你好 我亲爱的老师 R 用户朋友们 我最近开始认真学习正则表达式 最近我遇到了一种情况 我们只想保留配对括号 并省略未配对的 这是我的样本数据 structure list t1 c Book Pg 1 Website Online Jou

随机推荐

  • Perl Getopt::Long 支持参数空格

    我有一个 Perl 脚本 它使用 GetOpts 长 像这样的命令很容易处理 automate action build deploy modules chat email login 我想要实现的是允许用户在参数之间给出空格 E g au
  • Batch:检查参数数量

    我想确保在调用我的批处理时 传递的参数不超过 2 个 有没有一种简单的方法来检查这一点 或者我是否必须根据需要多次调用 SHIFT 直到参数值为空 您可以简单地测试第三个参数是否存在 如果存在则取消 if not 3 echo No mor
  • EditText 中的 Android 标签或气泡

    Can someone please point me in the right direction how to do those bubbles or labels in the EditText something like thos
  • 在 asp.net-mvc 中捕获每个用户的页面视图的最佳方法是什么

    在不降低网站性能的情况下捕获个人页面浏览量的最佳方法是什么 我看到 stackoverflow 到处都显示页面浏览量 每次我点击页面时他们都会插入数据库吗 在 asp net mvc 中 是否有任何推荐的方法来跟踪每个用户的页面视图 我的网
  • Facebook 的 FirebaseUI 身份验证未登录

    我在 Android 中使用 FirebaseUI Auth 进行用户身份验证 我的应用程序 build gradle 中用于 Facebook 登录的依赖项 compile com google firebase firebase aut
  • FOSUserBundle 多种用户类型

    我正在构建一个应用程序 其中 至少 有两种不同的用户类型 比如说买家和卖家 每个用户类型应该有自己的逻辑 注册表单 流程 个人资料 权限等 但我想对每个用户使用 FOSUserBundle 以便在某些方面进行共同管理 我实际上被注册表挡住了
  • LeafletJS L.DivIcon HTML 标记文本 - 相对于地图缩放的比例

    因此 我正在使用最新版本的传单 v1 0 2 并尝试将文本标签动态应用到自定义 地理对齐 地图上的特定 lat lng 点 我的问题是 我需要地图上的文本在缩放时保持其大小 就好像文本实际上是图块图像的一部分 使用任何类型的标记都会使文本保
  • RavenDB 中使用空格键搜索子字符串

    我正在使用这样的查询 var query QueryParser Escape input session Query
  • 如何在我的图表的主标题中包含斜体?

    这是我的 atm 代码 plot V1 V2 pch 19 main Changes in absolute cell volume of Chlorella Alga over a 24hr period xlab Stage in 24
  • IIS6 上的 ASP.NET MVC

    在哪里可以找到有关在 IIS6 上运行 ASP NET MVC 最佳实践的一些好建议 对于提供 IIS7 托管的网络主机 我还没有看到任何现实的选择 主要是因为我不住在美国 因此 我想知道如何最好地在 ASP NET MVC 中构建应用程序
  • NestJS - 如何使用装饰器创建嵌套模式

    假设我想用猫鼬构建以下模式 const userSchema new Schema name firstName String lastName String 我怎样才能用 NestJS 装饰器做到这一点 Schema Prop 我尝试这个
  • 如何在测试之间重置 Hardhat 的主网分叉?

    我正在使用 Hardhat 的主网分支在 Hardhat 中编写单元测试 但是一项测试的结果似乎会影响未来的测试并导致我的断言失败 我正在使用 Alchemy 和区块 14189520 进行分叉 例如 it Test 1 async fun
  • 为 libmysqlclient.18.dylib 库创建符号链接

    我已经通过 pkg 安装程序安装了 mysql 我正在尝试启动 Rails 服务器 但收到以下错误 Library not loaded libmysqlclient 18 dylib LoadError 我读到解决方案是创建一个符号链接
  • 将 RSSI 转换为距离

    如何将 RSSI 转换为距离 我有三个坐标 RFID 读取器 Reader1 0 0 读者2 0 8 读者3 8 5 应答器获取 RSSI 从阅读器 1 获取 156 从阅读器 2 获取 115 从阅读器 3 获取 124 我如何获得应答器
  • 将 C++ 结构填充为 2 的幂

    我正在为嵌入式系统编写一些 C 代码 代码使用的 I O 接口要求每个消息的大小 以字节为单位 是 2 的幂 现在 代码做了类似的事情 在几个地方 pragma pack 1 struct Message struct internal u
  • 为什么右大括号显示没有代码覆盖率?

    我有一个 Swift 函数 Xcode 在代码覆盖率中显示 0 次传递 该行是一个右大括号 下面以红色突出显示 这是 Xcode 中的错误吗 如果没有 我需要满足什么条件才能运行该线路 我以为我通过这种方法覆盖了所有路径 很确定这是 Xco
  • 如何使用 docker 桌面运行 docker-compose? [关闭]

    Closed 这个问题不符合堆栈溢出指南 help closed questions 目前不接受答案 我在 Windows 10 上 有一个 docker compose 文件 并被告知使用 docker 桌面而不是终端来运行它 我不知道如
  • 对于NoUiSlider,如何设置手柄/拇指的宽度?

    我尝试设置 NoUiSlider 的宽度 通过CSS noUi horizontal noUi handle width 8px height 25px left 0px top 8px border 0px solid 000000 bo
  • 将矩阵拆分为 4 个子矩阵,其总和之间的差异最小

    我必须找到 4 个子矩阵之和之间的差异 这是分割矩阵后得到的A不管怎样 为了得到子矩阵之和之间的差值最小 例如 对于矩阵A 3 0 2 8 8 5 3 2 2 3 2 5 2 1 4 3 4 1 4 2 3 6 2 4 3 我可以这样分割它
  • 如何使用 dplyr::mutate_all 对选定列进行舍入

    我正在使用以下软件包版本 devtools install github hadley dplyr gt packageVersion dplyr 1 0 5 0 9001 带有以下小标题 library dplyr df lt struc