mutate()可以依照選擇的欄位變量,創造一個新的變量出來,並且可以使用不同的操作、計算達到數據整理的目的。
基本語法
mutate(dataset, new_var = old_var)
載入dplyr
library(dplyr)
先設定一個欄位數據做為演示
# 新建tibble框
dplyr_operate <- tibble(id = c(12345,54312))
# 結果輸出
r$> dplyr_operate
# A tibble: 2 x 1
id
<dbl>
1 12345
2 54312
將舊的名稱變更新的名稱,等於rename()的效果,可以在調整變量時一併處理名稱的部分,除非新舊名稱一樣,否則會留著舊的變量
# 建立欄位變量
mutate(dplyr_operate,
member_id = id)
# 結果輸出
# A tibble: 2 x 2
id member_id
<dbl> <dbl>
1 12345 12345
2 54312 54312
也可以將日期取出並新增新的欄位變量,新增一個tibble的表格,並且利用lubrdate取出其中的日期數值
# 建立表格
data_time <- tibble(
date = c("2022-01-01 11:50:20", "2022-02-01 11:50:20")
)
data_time$date <- as.POSIXct(data_time$date)
# 結果輸出
r$> data_time
# A tibble: 2 x 1
date
<dttm>
1 2022-01-01 11:50:20
2 2022-02-01 11:50:20
# 利用mutate取出值並建立新欄位變量
data_time <- mutate(time, year = year(date))
data_time <- mutate(time, day = mday(date))
# 結果輸出
r$> data_time
# A tibble: 2 x 3
date year day
<chr> <dbl> <int>
1 2022-01-01 11:50:20 2022 1
2 2022-02-01 11:50:20 2022 1
搭配recode進行變量值的修改
# 建立字符數據框
data_df <- tibble(
fruit = c("apple", "banana")
)
# 結果輸出
r$> data_df
# A tibble: 2 x 1
fruit
<chr>
1 apple
2 banana
# 創造新變量與調整數值
data_df <- mutate(
data_df,
new_fruit = recode(fruit, "apple" = "orange")
)
# 結果輸出
r$> data_df
# A tibble: 2 x 2
fruit new_fruit
<chr> <chr>
1 apple orange
2 banana banana
抑或是想要計算後輸出新變量
# 建立數據框
data_calculate <- tibble(
num = c(1,2,3)
)
# 結果輸出
r$> data_calculate
# A tibble: 3 x 1
num
<dbl>
1 1
2 2
3 3
# 增加變量與調整數值
data_calculate <- mutate(
data_calculate,
new_num = (num * 10)
)
# 結果輸出
r$> data_calculate
# A tibble: 3 x 2
num new_num
<dbl> <dbl>
1 1 10
2 2 20
3 3 30
如果不想新增欄位變數,只要新欄位名 = 舊欄位名舊可以,但是不建議這樣做,一旦出錯舊需要重新來了,在整理數據的階段使用並搭配其他函數能大幅提升整理的效率。
沒有留言:
張貼留言