字符串作为输入变量 - R

时间:2017-08-02 14:00:35

标签: arrays r string object

我试图弄清楚如何解决这个问题。我想通过使用paste()和seq()方法将不同的元素存储到一个数组中,如xtrain1,xtrain2 ... xtrainN。这些元素也代表一个变量,应该应用于数组函数。我们的想法是创建一个这些元素的字符串并将其解析为数组函数,该函数识别出该字符串是函数内部的变量。创建向量seq_Xtrain它会在字符串中为所需数量的logValues(例如10)创建元素。如果我将不同的元素直接应用于数组函数,它就可以工作。我认为提取字符串中的元素是行不通的。如果有人可以帮助我会很高兴,谢谢!

seq_Xtrain <- paste("xtrain", seq(from=1, to=logValue),sep="", collapse=", ")

### Output of seq_Xtrain
[1] "xtrain1, xtrain2, xtrain3, xtrain4, xtrain5, xtrain6, xtrain7, xtrain8, xtrain9, xtrain10"

x_train <<- array( c(seq_Xtrain), dim=c(dim(xtrain1),logValue)) 

####### For example this works
##x_train <<- array( c(xtrain1, xtrain2, xtrain3, xtrain4,xtrain5, xtrain6, 
##                     xtrain7, xtrain8,xtrain9, xtrain10, xtrain11, xtrain12,
##                     xtrain13, xtrain14, xtrain15, xtrain16,xtrain17, xtrain18, xtrain19, xtrain20), dim=c(dim(xtrain1),20)) 

### Received output
> x_train[2]
[1] "xtest1, xtest2, xtest3, xtest4, xtest5, xtest6, xtest7, xtest8, xtest9, xtest10, xtest11, xtest12, xtest13, xtest14, xtest15, xtest16, xtest17, xtest18, xtest19, xtest20"

### Desired Output
> x_train[2]
[1] 0.4444944

1 个答案:

答案 0 :(得分:1)

我不是100%确定你想要做什么,因为缺少一些可重复的样本数据。但请查看我使用get

的示例
logValue <- log(1:3)

xtrain1 <- log(1)
xtrain2 <- log(2)
xtrain3 <- log(3)

seq_Xtrain <- paste0("xtrain", 1:length(logValue))

x_train <- array(sapply(seq_Xtrain, get)) 

查找所需名称的对象并检索其值。在这种情况下,这会产生

> x_train
[1] 0.0000000 0.6931472 1.0986123