r - 如何在除法操作周围静默撤消 dplyr 变异
问题描述
我有以下数据框:
library(tidyverse)
dat <- structure(list(sid = c("MK1", "MK2", "MK3"), nof_reads = c(19786677L,
29531664L, 1195340L), mapped_reads = c(19785168L, 29529532L,
1195250L)), .Names = c("sid", "nof_reads", "mapped_reads"), class = c("tbl_df",
"tbl", "data.frame"), row.names = c(NA, -3L))
dat
#> # A tibble: 3 x 3
#> sid nof_reads mapped_reads
#> <chr> <int> <int>
#> 1 MK1 19786677 19785168
#> 2 MK2 29531664 29529532
#> 3 MK3 1195340 1195250
当我通过除以尝试以下操作mapped_reads
时nof_reads
,我得到了这个:
> dat %>% mutate(rate = mapped_reads/nof_reads)
# A tibble: 3 x 4
sid nof_reads mapped_reads rate
<chr> <int> <int> <dbl>
1 MK1 19786677 19785168 1.000
2 MK2 29531664 29529532 1.000
3 MK3 1195340 1195250 1.000
请注意该rate
列的值四舍五入为 1.000。实际上它是在哪里MK_1
:
> 19785168/19786677
[1] 0.9999237
我该如何解决这个问题,以便它在不四舍五入的情况下输出。
解决方案
dat %>% mutate(rate = mapped_reads/nof_reads) %>% as.data.frame()
sid nof_reads mapped_reads rate
1 MK1 19786677 19785168 0.999924
2 MK2 29531664 29529532 0.999928
3 MK3 1195340 1195250 0.999925
推荐阅读
- python - 从数据结构中返回多行
- python - Pandas 转移到非 NaN 值并检查是否重复输入
- typescript - VSCode 和 Typescript:“没有找到...的类型定义”
- python - 如何清除未解决的导入'cv2'错误?
- wordpress - Wordpress 翻译搜索查询并链接到外部 url
- c++ - 管道第二次卡住
- ios - 在来自 Cloud Firestore 的颤振应用程序上显示图标
- javascript - 为什么我的 express Router 中间件会执行多次?
- javascript - React Native:AWS 放大要求我点击两次“federatedSignIn”才能让谷歌成功
- javascript - Meteor 和 Socket IO - 不存在“Access-Control-Allow-Origin”标头