2017-08-02 119 views
0

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

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

我不是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 
+0

对不起,迟到的回应,你救了我的一天!不知道get函数查找对象。谢谢! – Daniel