R 如何四舍五入到最接近的整数并转换为百分比

R 如何四舍五入到最接近的整数并转换为百分比,r,tibble,R,Tibble,我想把它们转换成一个整数,然后再转换成百分比。 例如,考试一,将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:1

我想把它们转换成一个整数,然后再转换成百分比。 例如,考试一,将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
round
编写函数。将其包装为
格式
会很有帮助,以便始终显示正确的小数位数。然后可以使用
lappy
将此函数应用于所有列

fxn <- function(x) {
  format(paste0(round(x * 100, 0), "%"), nsmall = 2)
}

exam_results_stats[1:6] <- lapply(exam_results_stats[1:6], fxn)

fxn使用
tidyverse
和一些基本R

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 %>%
  mutate_all(function(x) paste0(as.character(round(x*100, digits= 0)),"%"))

# A tibble: 10 x 6
exam_one exam_two exam_three exam_four exam_five exam_six
<chr>    <chr>    <chr>      <chr>     <chr>     <chr>   
  1 87%      34%      61%        58%       65%       96%     
  2 49%      84%      18%        26%       92%       48%     
  3 28%      33%      16%        74%       4%        5%      
  4 2%       43%      16%        21%       98%       95%     
  5 4%       30%      16%        97%       57%       58%     
  6 1%       23%      21%        20%       31%       37% 
考试结果统计%
mutate_all(函数(x)paste0(如.字符(圆形(x*100,数字=0)),“%”)
#一个tibble:10x6
考试一次考试二次考试三次考试四次考试五次考试六次
1 87%      34%      61%        58%       65%       96%     
2 49%      84%      18%        26%       92%       48%     
3 28%      33%      16%        74%       4%        5%      
4 2%       43%      16%        21%       98%       95%     
5 4%       30%      16%        97%       57%       58%     
6 1%       23%      21%        20%       31%       37% 

注意:您的数据现在是非数字的,如果您希望对其进行数学运算或绘制,则需要将其转换回数字数据类型

那么您真正想要的是什么?包含
XX%
的列或包含[0,9]、[10,19]?现在我想一想,只有当我收集整个列的行平均数时,
XX%
的单个列才会起作用,否则,我将不得不创建更多带有“%”的列。所以,一个列表明,除了一个带[0,9]的列。。。