簡體   English   中英

如何在 purrr::map 中插入列名稱列表以在 R 中創建新列

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM