从外部文件读取多个值作为字符向量

问题描述 投票:0回答:1

我目前正在从 .csv 中读取数据,如下所示:

param_file <- tribble(
  ~variable, ~value,
  "year", "2023",
  "version", "Saint_XL, Sinner_XY",
  "metric", "ATE, OFCE"
)

然后我需要将变量及其值加载为字符向量,因此我使用 dplyr 来执行此操作:

year <- param_file %>% filter(variable == "year") %>% pull(value)
version <- param_file %>% filter(variable == "version") %>% pull(value)
metric <- param_file %>% filter(variable == "metric") %>% pull(value)

这适用于单一值,即

year = "2023"
,

但是具有多个值的变量将作为一个值加载,即

"Saint_XL, Sinner_XY"
"ATE, OFCE"

这是所需的输出:

> year
[1] "2023"
> version
[1] "Saint_XL"  "Sinner_XY"
> metric
[1] "ATE"  "OFCE"

即字符向量否则将在环境值中显示为:

chr[1:2] "Saint_XL" "Sinner_XY"

如果有 dplyr 解决方案,我们将不胜感激。 (或者关于加载变量和赋值的任何有用的建议)

r dplyr
1个回答
0
投票

separate_rows()

library(tidyverse)

param_file <- tribble(
  ~variable, ~value,
  "year", "2023",
  "version", "Saint_XL, Sinner_XY",
  "metric", "ATE, OFCE"
)

new_file <- param_file |> separate_rows(value)

year <- new_file %>% filter(variable == "year") %>% pull(value)
version <- new_file %>% filter(variable == "version") %>% pull(value)
metric <- new_file %>% filter(variable == "metric") %>% pull(value)

year
#> [1] "2023"
version
#> [1] "Saint"  "XL"     "Sinner" "XY"
metric
#> [1] "ATE"  "OFCE"

创建于 2024-03-17,使用 reprex v2.1.0

© www.soinside.com 2019 - 2024. All rights reserved.