![](/img/trans.png)
[英]R purrr::map() & mutate(): Add many new columns based on variables in list
[英]how to interate a list of columns names in purrr::map to create new columns in R
我想使用 map() 對 dataframe 中的列列表執行操作,但我收到一個我無法理解的錯誤,有人可以幫忙嗎?
我希望它通過vec
中的列名列表進行循環,並減去 dataframe df
中 d 列中的值。
更新:提供了一個答案 across (有效)但是我需要用map()
而不是across()
library(tidyverse)
df <- tibble(a=seq.Date(from=ymd("2021-01-01"),to =ymd("2021-12-31"),by = "day"),
b=seq.Date(from=ymd("2020-01-01"),to =ymd("2020-12-31"),by = "day"),
c=seq.Date(from=ymd("2019-01-01"),to =ymd("2019-12-31"),by = "day"),
d=seq.Date(from=ymd("2018-01-01"),to =ymd("2018-12-31"),by = "day")
)
vec <- c("a","b","c")
map(vec,~transmute(df,d-.x))
你可以across
我將數據更新為 3 月而不是 1 月的日期,因為 2 月有不同的 # 天,我們不會生成 dataframe
df <- tibble(a=seq.Date(from=ymd("2021-03-01"),to =ymd("2021-12-31"),by = "day"),
b=seq.Date(from=ymd("2020-03-01"),to =ymd("2020-12-31"),by = "day"),
c=seq.Date(from=ymd("2019-03-01"),to =ymd("2019-12-31"),by = "day"),
d=seq.Date(from=ymd("2018-03-01"),to =ymd("2018-12-31"),by = "day")
)
vec <- c("a","b","c")
df %>% mutate(across(vec, ~ d-.x))
創建於 2023-01-28,使用reprex v2.0.2
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.