Hi all.
I'm having a little trouble with the  function "texteval" (session
package).
I have used "texteval" in the construction of the function
"ExpandData1".
"ExpandData1" does not work as expected. However, when I run only the
inside code
of "ExpandData1" I get the right result. Apparently
"texteval" is not working when
used called by another function. Here is a simple
example:> library(session)
> library(compositions)
The following object(s) are masked from 'package:robustbase':
> ExpandData1 <- function(Data,linkFunctionsVector,numPar)
+ {
+   attach(as.data.frame(Data))
+   EvalData = array(0, c(nrow(Data),length(linkFunctionsVector) ) )
+   for(idexpr in 1: length(linkFunctionsVector)) {
+   if(linkFunctionsVector[idexpr] == "1"){ EvalData[,idexpr] =
rep(1,nrow(Data))}
+   else{  texteval(paste("EvalData[,idexpr] =",
linkFunctionsVector[idexpr]), echo = TRUE)}
+   }
+   
+   ExpData = NULL
+   for(idpar in 1: numPar){
+   ExpData = cbind(ExpData, EvalData)
+   }
+   colnames(ExpData) = rep(linkFunctionsVector,numPar)
+   return(ExpData)
+ }> 
> # defining the parameters "Data",
"linkFunctionsVector",  and "numPar"
> 
> numPar = 2
> linkFunctionsVector = c("1", "depth",
"depth^2")
> data(ArcticLake)
> 
> A = ArcticLake[1:5,]
> Data = array(A[,4],c(5,1))
> colnames(Data) = c("depth")
> 
> # calling the function
> 
> ExpandData1(Data,linkFunctionsVector,numPar)
The following object(s) are masked from 'as.data.frame(Data) (position
11)':
    depth
     1 depth depth^2 1 depth depth^2
[1,] 1     0       0 1     0       0
[2,] 1     0       0 1     0       0
[3,] 1     0       0 1     0       0
[4,] 1     0       0 1     0       0
[5,] 1     0       0 1     0       0> 
> # however, running only the inside code
> 
> attach(as.data.frame(Data))
>   EvalData = array(0, c(nrow(Data),length(linkFunctionsVector) ) )
>   for(idexpr in 1: length(linkFunctionsVector)) {
+   if(linkFunctionsVector[idexpr] == "1"){ EvalData[,idexpr] =
rep(1,nrow(Data))}
+   else{  texteval(paste("EvalData[,idexpr] =",
linkFunctionsVector[idexpr]), echo = TRUE)}
+   }>   
>   ExpData = NULL
>   for(idpar in 1: numPar){
+   ExpData = cbind(ExpData, EvalData)
+   }>   colnames(ExpData) = rep(linkFunctionsVector,numPar)
>  
> # I get the right result
> 
> ExpData
     1 depth depth^2 1 depth depth^2
[1,] 1  10.4  108.16 1  10.4  108.16
[2,] 1  11.7  136.89 1  11.7  136.89
[3,] 1  12.8  163.84 1  12.8  163.84
[4,] 1  13.0  169.00 1  13.0  169.00
[5,] 1  15.7  246.49 1  15.7  246.49> 
I have no idea why this is happening. Any idea?
      
	[[alternative HTML version deleted]]