将除 1st 以外的所有列更改为美元格式

nak*_*120 4 r dplyr

我有一个数据框如下:

A    B    C    D     E      F      G
AA   1    2    3     4      5      6
BB   3    2    1     9     23    2.6
CC   2    5    1   1.9    2.5   2.99
Run Code Online (Sandbox Code Playgroud)

如何使用 scales 包更改此数据框以将所有列转换为美元格式?对于单列,我可以这样做:

library(scales)
df$B<-dollar(df$B)
Run Code Online (Sandbox Code Playgroud)

我如何为除第一列之外的所有列执行此操作,而无需为每一列一遍又一遍地编写?

akr*_*run 5

我们可以这样做 lapply

df[-1] <- lapply(df[-1], dollar)
df
#   A  B  C  D     E      F     G
#1 AA $1 $2 $3 $4.00  $5.00 $6.00
#2 BB $3 $2 $1 $9.00 $23.00 $2.60
#3 CC $2 $5 $1 $1.90  $2.50 $2.99
Run Code Online (Sandbox Code Playgroud)

或使用 tidyverse

library(tidyverse)
df %>% 
   mutate_at(vars(B:G), dollar)
Run Code Online (Sandbox Code Playgroud)