我试图从eval解析中获取价值,但我没有得到价值,反而得到错误消息为Error in file(filename, "r") : cannot open the connection
。我如何动态传递并获取价值。请帮助
ab_cc_dd = 55.4
gm = "ab"
代码:
df <- data.frame(gm, eval(parse(paste(gm,"_","cc_dd",sep=''))))
预期产量
>df
ab 55.4
答案 0 :(得分:2)
我们需要get
而不是eval(parse
data.frame(col1 = gm,col2 = get(paste0(gm,"_cc_dd")))
# col1 col2
#1 ab 55.4
或使用tidyverse
library(dplyr)
library(stringr)
tibble(col1 = gm, col2 = !! rlang::sym(str_c(gm, "_cc_dd")))
# A tibble: 1 x 2
# col1 col2
# <chr> <dbl>
#1 ab 55.4
答案 1 :(得分:2)
parse
的第一个参数是file
。因此,它正在寻找具有该名称的文件。您想将参数传递给text
:
df <- data.frame(gm, eval(parse(text = paste(gm,"_","cc_dd",sep=''))))