如何使用字符串作为生成data.frame的方向?

时间:2016-08-31 13:51:38

标签: r string dataframe

我确信这很简单,但我找不到解决方案。 我想把我的字符串称为Data

Data
[1] "as.numeric(dataset$a),as.numeric(dataset1$a)"

在函数data.frame中创建数据帧。我试试:

DB<-data.frame(Data)

但输出是我的字符串。如果我调用DB,则输出infact为:

 Data
 1 as.numeric(dataset$a),as.numeric(dataset1$a)

不是数据集$ a,dataset1 $ a中的值。 感谢

1 个答案:

答案 0 :(得分:1)

当然,有一种更好的方法可以做任何你想做的事情。但是如果你真的想要运行一个字符串就好像它是代码一样,你可以使用eval(parse(text = string))构造。但是,编写代码通常是一种糟糕的方式。尽管如此,这是一个解决方案:

# a test dataframe
df = data.frame(a = 1:10, b = 11:20)
# string with code to run
string = "as.numeric(df$a),as.numeric(df$b)"
# split on , since those are separate lines of code
str = unlist(strsplit(string, ','))
# put it in a dataframe
df2 = data.frame(sapply(str, function(string) eval(parse(text = string))))