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