pomodoro
pomodoro

Reputation: 307

Concatinate text using paste to call a vector in r

I'm very new to R so may still be thinking in spreadsheets. I'd like to loop a list of names from a vector (list) through a function (effect) and append text to the front and end of the name a bit of text ("data$" and ".time0" or ".time1") so it references a specific vector of a dataframe I already have loaded (i.e., data$variable.time0 and data$variable.time1).

Paste just gives me a character named "data$variable.time0" or "data$variable.time1", rather than referencing the vector of the dataframe I want it to. Can I convert this to a reference somehow?

for (i in list){
  function(i)
}

effect <- function(i){
    time0 <- paste("data$",i,".time0", sep = ""))
    time1 <- paste("data$",i,".time1", sep = "")) 

#code continues but not relevant here

}

Upvotes: 1

Views: 1319

Answers (1)

LAP
LAP

Reputation: 6685

You can use eval(parse(text = "...")) to evaluate characters.

Try

time0 <- eval(parse(text = paste("data$",i,".time0", sep = ""))))

within your loop.

Upvotes: 2

Related Questions