r - 如何四舍五入到最接近的整数并转换为百分比
问题描述
我想将这些转换成整数,然后变成百分比。例如,考试一,0.318 变成 32 分,然后创建一个显示“32%”的列,或一个显示百分比标记的列,即 0-9、10-19 ... 90-99
> exam_results_stats <-
tibble(exam_one = runif(1:10), exam_two = runif(1:10), exam_three =
runif(1:10), exam_four = runif(1:10), exam_five = runif(1:10),
exam_six = runif(1:10))
exam_results_stats[, 1:6]
exam_one exam_two exam_three exam_four
<dbl> <dbl> <dbl> <dbl>
1 0.318 0.225 0.432 0.915
2 0.0747 0.0854 0.217 0.879
3 0.327 0.188 0.211 0.582
4 0.260 0.593 0.754 0.427
5 0.0569 0.172 0.519 0.258
6 0.175 0.721 0.395 0.740
7 0.0530 0.414 0.924 0.919
8 0.486 0.670 0.491 0.894
9 0.566 0.891 0.786 0.868
10 0.466 0.762 0.0480 0.0377
解决方案
paste0
首先,您可以使用and编写一个函数round
。将其包装起来很有帮助,format
以便始终显示正确的小数位数。然后,您可以使用lapply
将此功能应用于所有列。
fxn <- function(x) {
format(paste0(round(x * 100, 0), "%"), nsmall = 2)
}
exam_results_stats[1:6] <- lapply(exam_results_stats[1:6], fxn)
推荐阅读
- file - 无法在代码点火器中加载文件类
- scala - 在 CLI 中将 Scala 3 设为默认
- c# - CsvHelper - 缓慢填充数据表(ish)
- html - 在引导程序中居中表单不起作用
- r - R/Shiny - 将复选框标签转移到功能字段
- autodesk - EAGLE:是否可以使用“print-inductor.ulp”文件创建 90 度轨迹转弯?
- c# - for 循环内的异步 HTTP 请求,没有同时等待异步操作
- macos - 在 macOS 上,为什么 'docker system df' 显示总共 18 个 * 和 * 活动容器,但 'docker ps' 是空的
- ruby-3 - montrose gem 在使用期间不工作
- c++ - 尝试使用带有 arduino ide 的 esp32 制作自定义快捷键