R: eval(parse()) error message: cannot open file even though "text=" is specified in parse

eval, loops, parsing, r

Solution

Assigning to `eval` isn't guaranteed to work. This is one of multiple reasons it's usually not a good idea to use `eval`.

Why not just store countries and their conditions in a named list, something like this:

conditions = list()
conditions[["Spain"]] = list()
conditions[["Spain"]][["condition1"]] <- 10
conditions[["Spain"]][["condition1"]][2] <- 2

conditions[["Spain"]][["condition1"]]
# [1] 10  2

ETA: To work with a loop (I don't know precisely what the structure of your problem is, but here's the general idea):

countries = c("Spain", "England", "France", "Germany", "USA") # and so on
conditions = c("Sunny", "Rainy", "Snowing") # or something

data = list()
for (country in countries) {
    data[[country]] <- list()
    for (condition in conditions) {
        data[[country]][[condition]] <- 4 # assign appropriate value here
    }
}

It can also be constructed from a tab-delimited file, or generated in whatever way is appropriate for your problem- R is more than capable.

Problem

I'm running analysis for a list of countries several times and during each iteration the result should be added to a vector. Below I show a simplified example without the loop for just one country. Even though I thoroughly looked for solutions, I could not find an answer. ``` #this is my simplified country vector with just 1 country country<-c("Spain") #This is the vector that should hold the results of multiple iterations #for now, it contains only the result of the first iteration Spain.condition1<- 10 #reading result vector in a variable (this is automized in a loop in my code) resultVector<-paste(country,"condition1",sep=".") #when I call the content of the vector with parse, eval #I see the content of the vector as expected eval(parse(text=resultVector)) #however, when I try to add a second result to it eval(parse(text=resultVector))[2]<-2 #I get following error message: #Error in file(filename, "r") : cannot open the connection #In addition: Warning message: #In file(filename, "r") : # cannot open file 'Spain.condition1': No such file or directory ``` Could anyone help me or put me in the right direction?

Original source

Related problems