簡體   English   中英

創建一個列作為 function 列,其編號為名稱 dplyr

[英]create a column as a function of columns with number as names dplyr

我想基於另外兩列在數據框中創建一列。 列名是年份,我想將其作為變量提供。

例如,如果我有一個數據框data1包含幾年的數據,每個列的名稱都是年份(我知道這可能不是一個正確的名稱),那么:

year = 2022

  data1 %>%
  select(sprintf("%d", seq(
  from = (year - 4),
  to = year,
  by = 1
))) %>%
  mutate(percent = year/(year-1) - 1)

其中 (year/(year-1) - 1 將是從 2021 年到 2022 年的百分比變化,因此將使用 2021 和 2022 列。顯然此代碼不起作用。

非常感謝您的幫助。

列名是字符串,因此我們可能需要轉換為字符串並使用.data[[來提取列

 data1 %>%
  select(sprintf("%d", seq(
  from = (year - 4),
  to = year,
  by = 1
))) %>%
    mutate(percent = .data[[as.character(year)]]/.data[[as.character(year -1)]] - 1)

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

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