我目前正在从 .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 解决方案,我们将不胜感激。 (或者关于加载变量和赋值的任何有用的建议)
与
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