首页 > 解决方案 > 如何四舍五入到最接近的整数并转换为百分比

问题描述

我想将这些转换成整数,然后变成百分比。例如,考试一,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

标签: rtibble

解决方案


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)

推荐阅读