R语言 如何通过为条件赋值来将表达式列更改为值?

uyto3xhc  于 2022-12-06  发布在  其他
关注(0)|答案(1)|浏览(195)

我试图制作一个动态的时间序列,我可以将一个表达式的 Dataframe 与一个带有日期的 Dataframe 相匹配。
例如:
df 1看起来像:
| 计时器|价值|选项|
| - -|- -|- -|
| 第三期|100个|A级|
| t-2|第一百一十章|A级|
| t-1级|一百二十|A级|
| 第三期|二百七十|B|
| t-2|四百五十九|B|
| t-1级|三百七十三|B|
df 2看起来像:
| 起动机|选项|
| - -|- -|
| 小行星2020| A级|
| 小行星2025| B|
我希望结果看起来像这样:
| 计时器|价值|选项|
| - -|- -|- -|
| 二〇一七年|100个|A级|
| 二〇一八年|第一百一十章|A级|
| 二〇一九年|一百二十|A级|
| 一个人。|一个人。|一个人。|
| 小行星2024|三百七十三|B|
我可以连接数据框,但不确定如何将时间列转换为日期

oxcyiej7

oxcyiej71#

df1 <- tibble::tribble(
  ~time, ~value, ~option,
  "t-3",   100L,     "A",
  "t-2",   110L,     "A",
  "t-1",   120L,     "A",
  "t-3",   270L,     "B",
  "t-2",   459L,     "B",
  "t-1",   373L,     "B"
)
df2 <- tibble::tribble(
  ~start, ~option,
  2020L, "A",
  2025L, "B"
)

library(tidyverse)
library(glue)
full_join(df1, df2) |>
  rowwise() |>
  mutate(
    time = eval(parse(text = glue("function(t){time}")))(start)
  ) |>
  select(-start) |>
  ungroup()

相关问题