rename_if()
、 rename_at()
和 rename_all()
已被 rename_with()
取代。匹配的 select 語句已被 select()
+ rename_with()
的組合取代。作為參數傳遞給 select()
或 rename_with()
的任何謂詞函數都必須包裝在 where()
中。
這些函數已被取代,因為 mutate_if()
和朋友已被 across()
取代。 select_if()
和 rename_if()
已經使用整齊選擇,因此它們不能被 across()
替換,而是我們需要一個新函數。
用法
select_all(.tbl, .funs = list(), ...)
rename_all(.tbl, .funs = list(), ...)
select_if(.tbl, .predicate, .funs = list(), ...)
rename_if(.tbl, .predicate, .funs = list(), ...)
select_at(.tbl, .vars, .funs = list(), ...)
rename_at(.tbl, .vars, .funs = list(), ...)
參數
- .tbl
-
tbl
對象。 - .funs
-
函數
fun
、 purrr 樣式 lambda~ fun(.)
或任一形式的列表。 - ...
-
.funs
中函數調用的附加參數。這些僅在 tidy dots 支持下評估一次。 - .predicate
-
應用於列或邏輯向量的謂詞函數。選擇
.predicate
為或返回TRUE
的變量。該參數傳遞給rlang::as_function()
,因此支持quosure-style lambda 函數和表示函數名稱的字符串。 - .vars
-
由
vars()
生成的列列表、列名稱的字符向量、列位置的數值向量或NULL
。
例子
mtcars <- as_tibble(mtcars) # for nicer printing
mtcars %>% rename_all(toupper)
#> # A tibble: 32 × 11
#> MPG CYL DISP HP DRAT WT QSEC VS AM GEAR CARB
#> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl>
#> 1 21 6 160 110 3.9 2.62 16.5 0 1 4 4
#> 2 21 6 160 110 3.9 2.88 17.0 0 1 4 4
#> 3 22.8 4 108 93 3.85 2.32 18.6 1 1 4 1
#> 4 21.4 6 258 110 3.08 3.22 19.4 1 0 3 1
#> 5 18.7 8 360 175 3.15 3.44 17.0 0 0 3 2
#> 6 18.1 6 225 105 2.76 3.46 20.2 1 0 3 1
#> 7 14.3 8 360 245 3.21 3.57 15.8 0 0 3 4
#> 8 24.4 4 147. 62 3.69 3.19 20 1 0 4 2
#> 9 22.8 4 141. 95 3.92 3.15 22.9 1 0 4 2
#> 10 19.2 6 168. 123 3.92 3.44 18.3 1 0 4 4
#> # ℹ 22 more rows
# ->
mtcars %>% rename_with(toupper)
#> # A tibble: 32 × 11
#> MPG CYL DISP HP DRAT WT QSEC VS AM GEAR CARB
#> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl>
#> 1 21 6 160 110 3.9 2.62 16.5 0 1 4 4
#> 2 21 6 160 110 3.9 2.88 17.0 0 1 4 4
#> 3 22.8 4 108 93 3.85 2.32 18.6 1 1 4 1
#> 4 21.4 6 258 110 3.08 3.22 19.4 1 0 3 1
#> 5 18.7 8 360 175 3.15 3.44 17.0 0 0 3 2
#> 6 18.1 6 225 105 2.76 3.46 20.2 1 0 3 1
#> 7 14.3 8 360 245 3.21 3.57 15.8 0 0 3 4
#> 8 24.4 4 147. 62 3.69 3.19 20 1 0 4 2
#> 9 22.8 4 141. 95 3.92 3.15 22.9 1 0 4 2
#> 10 19.2 6 168. 123 3.92 3.44 18.3 1 0 4 4
#> # ℹ 22 more rows
# NB: the transformation comes first in rename_with
is_whole <- function(x) all(floor(x) == x)
mtcars %>% rename_if(is_whole, toupper)
#> # A tibble: 32 × 11
#> mpg CYL disp HP drat wt qsec VS AM GEAR CARB
#> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl>
#> 1 21 6 160 110 3.9 2.62 16.5 0 1 4 4
#> 2 21 6 160 110 3.9 2.88 17.0 0 1 4 4
#> 3 22.8 4 108 93 3.85 2.32 18.6 1 1 4 1
#> 4 21.4 6 258 110 3.08 3.22 19.4 1 0 3 1
#> 5 18.7 8 360 175 3.15 3.44 17.0 0 0 3 2
#> 6 18.1 6 225 105 2.76 3.46 20.2 1 0 3 1
#> 7 14.3 8 360 245 3.21 3.57 15.8 0 0 3 4
#> 8 24.4 4 147. 62 3.69 3.19 20 1 0 4 2
#> 9 22.8 4 141. 95 3.92 3.15 22.9 1 0 4 2
#> 10 19.2 6 168. 123 3.92 3.44 18.3 1 0 4 4
#> # ℹ 22 more rows
# ->
mtcars %>% rename_with(toupper, where(is_whole))
#> # A tibble: 32 × 11
#> mpg CYL disp HP drat wt qsec VS AM GEAR CARB
#> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl>
#> 1 21 6 160 110 3.9 2.62 16.5 0 1 4 4
#> 2 21 6 160 110 3.9 2.88 17.0 0 1 4 4
#> 3 22.8 4 108 93 3.85 2.32 18.6 1 1 4 1
#> 4 21.4 6 258 110 3.08 3.22 19.4 1 0 3 1
#> 5 18.7 8 360 175 3.15 3.44 17.0 0 0 3 2
#> 6 18.1 6 225 105 2.76 3.46 20.2 1 0 3 1
#> 7 14.3 8 360 245 3.21 3.57 15.8 0 0 3 4
#> 8 24.4 4 147. 62 3.69 3.19 20 1 0 4 2
#> 9 22.8 4 141. 95 3.92 3.15 22.9 1 0 4 2
#> 10 19.2 6 168. 123 3.92 3.44 18.3 1 0 4 4
#> # ℹ 22 more rows
mtcars %>% rename_at(vars(mpg:hp), toupper)
#> # A tibble: 32 × 11
#> MPG CYL DISP HP drat wt qsec vs am gear carb
#> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl>
#> 1 21 6 160 110 3.9 2.62 16.5 0 1 4 4
#> 2 21 6 160 110 3.9 2.88 17.0 0 1 4 4
#> 3 22.8 4 108 93 3.85 2.32 18.6 1 1 4 1
#> 4 21.4 6 258 110 3.08 3.22 19.4 1 0 3 1
#> 5 18.7 8 360 175 3.15 3.44 17.0 0 0 3 2
#> 6 18.1 6 225 105 2.76 3.46 20.2 1 0 3 1
#> 7 14.3 8 360 245 3.21 3.57 15.8 0 0 3 4
#> 8 24.4 4 147. 62 3.69 3.19 20 1 0 4 2
#> 9 22.8 4 141. 95 3.92 3.15 22.9 1 0 4 2
#> 10 19.2 6 168. 123 3.92 3.44 18.3 1 0 4 4
#> # ℹ 22 more rows
# ->
mtcars %>% rename_with(toupper, mpg:hp)
#> # A tibble: 32 × 11
#> MPG CYL DISP HP drat wt qsec vs am gear carb
#> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl>
#> 1 21 6 160 110 3.9 2.62 16.5 0 1 4 4
#> 2 21 6 160 110 3.9 2.88 17.0 0 1 4 4
#> 3 22.8 4 108 93 3.85 2.32 18.6 1 1 4 1
#> 4 21.4 6 258 110 3.08 3.22 19.4 1 0 3 1
#> 5 18.7 8 360 175 3.15 3.44 17.0 0 0 3 2
#> 6 18.1 6 225 105 2.76 3.46 20.2 1 0 3 1
#> 7 14.3 8 360 245 3.21 3.57 15.8 0 0 3 4
#> 8 24.4 4 147. 62 3.69 3.19 20 1 0 4 2
#> 9 22.8 4 141. 95 3.92 3.15 22.9 1 0 4 2
#> 10 19.2 6 168. 123 3.92 3.44 18.3 1 0 4 4
#> # ℹ 22 more rows
# You now must select() and then rename
mtcars %>% select_all(toupper)
#> # A tibble: 32 × 11
#> MPG CYL DISP HP DRAT WT QSEC VS AM GEAR CARB
#> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl>
#> 1 21 6 160 110 3.9 2.62 16.5 0 1 4 4
#> 2 21 6 160 110 3.9 2.88 17.0 0 1 4 4
#> 3 22.8 4 108 93 3.85 2.32 18.6 1 1 4 1
#> 4 21.4 6 258 110 3.08 3.22 19.4 1 0 3 1
#> 5 18.7 8 360 175 3.15 3.44 17.0 0 0 3 2
#> 6 18.1 6 225 105 2.76 3.46 20.2 1 0 3 1
#> 7 14.3 8 360 245 3.21 3.57 15.8 0 0 3 4
#> 8 24.4 4 147. 62 3.69 3.19 20 1 0 4 2
#> 9 22.8 4 141. 95 3.92 3.15 22.9 1 0 4 2
#> 10 19.2 6 168. 123 3.92 3.44 18.3 1 0 4 4
#> # ℹ 22 more rows
# ->
mtcars %>% rename_with(toupper)
#> # A tibble: 32 × 11
#> MPG CYL DISP HP DRAT WT QSEC VS AM GEAR CARB
#> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl>
#> 1 21 6 160 110 3.9 2.62 16.5 0 1 4 4
#> 2 21 6 160 110 3.9 2.88 17.0 0 1 4 4
#> 3 22.8 4 108 93 3.85 2.32 18.6 1 1 4 1
#> 4 21.4 6 258 110 3.08 3.22 19.4 1 0 3 1
#> 5 18.7 8 360 175 3.15 3.44 17.0 0 0 3 2
#> 6 18.1 6 225 105 2.76 3.46 20.2 1 0 3 1
#> 7 14.3 8 360 245 3.21 3.57 15.8 0 0 3 4
#> 8 24.4 4 147. 62 3.69 3.19 20 1 0 4 2
#> 9 22.8 4 141. 95 3.92 3.15 22.9 1 0 4 2
#> 10 19.2 6 168. 123 3.92 3.44 18.3 1 0 4 4
#> # ℹ 22 more rows
# Selection drops unselected variables:
mtcars %>% select_if(is_whole, toupper)
#> # A tibble: 32 × 6
#> CYL HP VS AM GEAR CARB
#> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl>
#> 1 6 110 0 1 4 4
#> 2 6 110 0 1 4 4
#> 3 4 93 1 1 4 1
#> 4 6 110 1 0 3 1
#> 5 8 175 0 0 3 2
#> 6 6 105 1 0 3 1
#> 7 8 245 0 0 3 4
#> 8 4 62 1 0 4 2
#> 9 4 95 1 0 4 2
#> 10 6 123 1 0 4 4
#> # ℹ 22 more rows
# ->
mtcars %>% select(where(is_whole)) %>% rename_with(toupper)
#> # A tibble: 32 × 6
#> CYL HP VS AM GEAR CARB
#> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl>
#> 1 6 110 0 1 4 4
#> 2 6 110 0 1 4 4
#> 3 4 93 1 1 4 1
#> 4 6 110 1 0 3 1
#> 5 8 175 0 0 3 2
#> 6 6 105 1 0 3 1
#> 7 8 245 0 0 3 4
#> 8 4 62 1 0 4 2
#> 9 4 95 1 0 4 2
#> 10 6 123 1 0 4 4
#> # ℹ 22 more rows
mtcars %>% select_at(vars(-contains("ar"), starts_with("c")), toupper)
#> # A tibble: 32 × 10
#> MPG CYL DISP HP DRAT WT QSEC VS AM CARB
#> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl>
#> 1 21 6 160 110 3.9 2.62 16.5 0 1 4
#> 2 21 6 160 110 3.9 2.88 17.0 0 1 4
#> 3 22.8 4 108 93 3.85 2.32 18.6 1 1 1
#> 4 21.4 6 258 110 3.08 3.22 19.4 1 0 1
#> 5 18.7 8 360 175 3.15 3.44 17.0 0 0 2
#> 6 18.1 6 225 105 2.76 3.46 20.2 1 0 1
#> 7 14.3 8 360 245 3.21 3.57 15.8 0 0 4
#> 8 24.4 4 147. 62 3.69 3.19 20 1 0 2
#> 9 22.8 4 141. 95 3.92 3.15 22.9 1 0 2
#> 10 19.2 6 168. 123 3.92 3.44 18.3 1 0 4
#> # ℹ 22 more rows
# ->
mtcars %>%
select(!contains("ar") | starts_with("c")) %>%
rename_with(toupper)
#> # A tibble: 32 × 10
#> MPG CYL DISP HP DRAT WT QSEC VS AM CARB
#> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl>
#> 1 21 6 160 110 3.9 2.62 16.5 0 1 4
#> 2 21 6 160 110 3.9 2.88 17.0 0 1 4
#> 3 22.8 4 108 93 3.85 2.32 18.6 1 1 1
#> 4 21.4 6 258 110 3.08 3.22 19.4 1 0 1
#> 5 18.7 8 360 175 3.15 3.44 17.0 0 0 2
#> 6 18.1 6 225 105 2.76 3.46 20.2 1 0 1
#> 7 14.3 8 360 245 3.21 3.57 15.8 0 0 4
#> 8 24.4 4 147. 62 3.69 3.19 20 1 0 2
#> 9 22.8 4 141. 95 3.92 3.15 22.9 1 0 2
#> 10 19.2 6 168. 123 3.92 3.44 18.3 1 0 4
#> # ℹ 22 more rows
相關用法
- R dplyr select 使用列的名稱和類型保留或刪除列
- R dplyr setops 設置操作
- R dplyr slice 使用行的位置對行進行子集化
- R dplyr sample_n 從表中采樣 n 行
- R dplyr starwars 星球大戰人物
- R dplyr storms 風暴追蹤數據
- R dplyr summarise_all 匯總多列
- R dplyr summarise 將每組匯總為一行
- R dplyr group_trim 修剪分組結構
- R dplyr copy_to 將本地數據幀複製到遠程src
- R dplyr consecutive_id 為連續組合生成唯一標識符
- R dplyr row_number 整數排名函數
- R dplyr band_members 樂隊成員
- R dplyr mutate-joins 變異連接
- R dplyr nth 從向量中提取第一個、最後一個或第 n 個值
- R dplyr coalesce 找到第一個非缺失元素
- R dplyr group_split 按組分割 DataFrame
- R dplyr mutate 創建、修改和刪除列
- R dplyr order_by 用於排序窗口函數輸出的輔助函數
- R dplyr context 有關“當前”組或變量的信息
- R dplyr percent_rank 比例排名函數
- R dplyr recode 重新編碼值
- R dplyr desc 降序
- R dplyr between 檢測值落在指定範圍內的位置
- R dplyr cumall 任何、全部和平均值的累積版本
注:本文由純淨天空篩選整理自Hadley Wickham等大神的英文原創作品 Select and rename a selection of variables。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。