R 如何将数字格式化为百分比并限制小数位数

R 如何将数字格式化为百分比并限制小数位数,r,dplyr,lag,R,Dplyr,Lag,下面是示例数据、操作等。我的问题涉及第四部分,其中包含滞后函数。理想的结果是区域001和smb 1的empprevyearpct(是的,我知道它实际上是一个qtr)值显示为4.35%,而不是0.04347826。我一直在尝试这样做,但使用的天平无法计算出如何将数字移到小数点的右边,并将其转换为百分比 library(readxl) library(dplyr) library(data.table) library(odbc) library(DBI) library(stringr) em

下面是示例数据、操作等。我的问题涉及第四部分,其中包含滞后函数。理想的结果是区域001和smb 1的empprevyearpct(是的,我知道它实际上是一个qtr)值显示为4.35%,而不是0.04347826。我一直在尝试这样做,但使用的天平无法计算出如何将数字移到小数点的右边,并将其转换为百分比

library(readxl)
library(dplyr)
library(data.table)
library(odbc)
library(DBI)
library(stringr)

 employment <- c(1,45,125,130,165,260,600,2,46,127,132,167,265,601,50,61,110,121,170,305,55,603,66,112,123,172,310,604)
 small <- c(1,1,2,2,3,4,NA,1,1,2,2,3,4,NA,1,1,2,2,3,4,NA,1,1,2,2,3,4,NA)
 area <-c(001,001,001,001,001,001,001,001,001,001,001,001,001,001,003,003,003,003,003,003,003,003,003,003,003,003,003,003)
 year<-c(2020,2020,2020,2020,2020,2020,2020,2020,2020,2020,2020,2020,2020,2020,2020,2020,2020,2020,2020,2020,2020,2020,2020,2020,2020,2020,2020,2020)
 qtr <-c(1,1,1,1,1,1,1,2,2,2,2,2,2,2,1,1,1,1,1,1,1,2,2,2,2,2,2,2)

 smbtest <- data.frame(employment,small,area,year,qtr)

 smbtest$smb <-0

 smbtest <- smbtest %>% mutate(smb = case_when(employment >=0 & employment <100 ~ "1",employment >=0 
 & employment <150 ~ "2",employment >=0 & employment <250 ~ "3", employment >=0 & employment <500 ~ 
 "4"))


smbsummary2<-smbtest %>% 
mutate(period = paste0(year,"q",qtr)) %>%
select(area,period,employment,smb) %>%
group_by(area,period,smb) %>%
summarise(employment = sum(employment), worksites = n(), 
        .groups = 'drop_last') %>% 
mutate(employment = cumsum(employment),
     worksites = cumsum(worksites))

smbsummary2<- smbsummary2%>%
group_by(area,smb)%>%
mutate(empprevyear=lag(employment),
     empprevyearpp=employment-empprevyear,
     empprevyearpct=((employment/empprevyear)-1))


 smblonger2<-smbsummary2 %>%
 ungroup() %>%
 pivot_longer(cols = employment:worksites, names_to = "measure", values_to = "value") %>%
 group_by(area,measure) %>%
 pivot_wider(names_from = period, values_from = value) %>% gt()
库(readxl)
图书馆(dplyr)
库(数据表)
数据库(odbc)
图书馆(DBI)
图书馆(stringr)
就业率%
按(面积、尺寸)分组%>%
pivot\u更宽(名称\u from=period,值\u from=value)%>%gt()

您可以使用
scales::percent()

smbsummary2%
分组依据(地区、中小企业)%>%
突变(年份=滞后(就业),
empprevyearpp=就业empprevyear,
empprevyearpct=((就业/empprevyear)-1),empprevyearpct=比例::百分比(empprevyearpct)
)
输出:

    area period smb   employment worksites empprevyear empprevyearpp empprevyearpct
   <dbl> <chr>  <chr>      <dbl>     <int>       <dbl>         <dbl> <chr>         
 1     1 2020q1 1             46         2          NA            NA NA            
 2     1 2020q1 2            301         4          NA            NA NA            
 3     1 2020q1 3            466         5          NA            NA NA            
 4     1 2020q1 4            726         6          NA            NA NA            
 5     1 2020q1 NA          1326         7          NA            NA NA            
 6     1 2020q2 1             48         2          46             2 4%            
 7     1 2020q2 2            307         4         301             6 2%            
 8     1 2020q2 3            474         5         466             8 2%            
 9     1 2020q2 4            739         6         726            13 2%            
10     1 2020q2 NA          1340         7        1326            14 1%            
11     3 2020q1 1            166         3          NA            NA NA            
12     3 2020q1 2            397         5          NA            NA NA            
13     3 2020q1 3            567         6          NA            NA NA            
14     3 2020q1 4            872         7          NA            NA NA            
15     3 2020q2 1             66         1         166          -100 -60%          
16     3 2020q2 2            301         3         397           -96 -24%          
17     3 2020q2 3            473         4         567           -94 -17%          
18     3 2020q2 4            783         5         872           -89 -10%          
19     3 2020q2 NA          1990         7          NA            NA NA   
区域期间smb就业工作地点empprevyear empprevyearpp empprevyearpct
1 1 2020q1 1 46 2不适用不适用不适用
2 1 2020q1 2 301 4不适用不适用不适用
3 1 2020q1 3 466 5不适用
4 1 2020q1 4 726 6不适用
5 1 2020q1 NA 1326 7 NA NA NA
6 1 2020q2 1 48 2 46 2 4%
7 1 2020q2 2 307 4 301 6 2%
8 1 2020q2 3 474 5 466 8 2%
912020Q247396726 13.2%
1012020Q2北美134071326141%
11 3 2020q1 1 166 3不适用不适用不适用
12 3 2020q1 2 397 5不适用
13 3 2020q1 3 567 6不适用
14 3 2020q1 4 872 7不适用
152020Q2166166-100-60%
162020Q223019397-96-24%
173200Q234734567-94-17%
182020Q247835872-89-10%
19 3 2020q2 NA 1990 7 NA NA NA
您可以从
scales软件包中尝试
百分比()。您还可以按如下方式设置数字:
百分比(x,精度=0.01)
。注:0.1=1位,0.01=2位,0.001=3位,依此类推

    area period smb   employment worksites empprevyear empprevyearpp empprevyearpct
   <dbl> <chr>  <chr>      <dbl>     <int>       <dbl>         <dbl> <chr>         
 1     1 2020q1 1             46         2          NA            NA NA            
 2     1 2020q1 2            301         4          NA            NA NA            
 3     1 2020q1 3            466         5          NA            NA NA            
 4     1 2020q1 4            726         6          NA            NA NA            
 5     1 2020q1 NA          1326         7          NA            NA NA            
 6     1 2020q2 1             48         2          46             2 4%            
 7     1 2020q2 2            307         4         301             6 2%            
 8     1 2020q2 3            474         5         466             8 2%            
 9     1 2020q2 4            739         6         726            13 2%            
10     1 2020q2 NA          1340         7        1326            14 1%            
11     3 2020q1 1            166         3          NA            NA NA            
12     3 2020q1 2            397         5          NA            NA NA            
13     3 2020q1 3            567         6          NA            NA NA            
14     3 2020q1 4            872         7          NA            NA NA            
15     3 2020q2 1             66         1         166          -100 -60%          
16     3 2020q2 2            301         3         397           -96 -24%          
17     3 2020q2 3            473         4         567           -94 -17%          
18     3 2020q2 4            783         5         872           -89 -10%          
19     3 2020q2 NA          1990         7          NA            NA NA