0

I am trying to open a data frame in a list by its name without success.

I am successfully calling the data frame (S09489500) in the list (listDF_Ann_recursive) using

listDF_Ann_recursive$S09489500

However, I do not want to call it in this way, instead,

I got the name from another list and save in a variable called name:

name <- as.name(list_recursive_algorithm[[o]]$Station[i]) 
print(name)
> print(name)
S09489500

After, I use the variable name to call the data frame, but obviously, it is not working

listDF_Ann_recursive$name

Any idea to solve it?

Sss
  • 427
  • 2
  • 8

3 Answers3

0

This will get you what you want: listDF_Ann_recursive[[name]]

You can read more about why listDF_Ann_recursive$name doesn't work by reading Advanced R.

seagullnutkin
  • 311
  • 1
  • 10
0

Alternatively you can use the pull() function from the dplyr package instead

pull(listDF_Ann_recursive, name)
Taufi
  • 1,557
  • 8
  • 14
0

You can access the df by name with list brackets or access by variable name also with brackets. Example if it helps:

cars1 <- mtcars
cars2 <- cars1
list1 <- list(cars1 = cars1, cars2 = cars2)
head(list1[['cars1']])

mpg cyl disp  hp drat    wt  qsec vs am gear carb
Mazda RX4         21.0   6  160 110 3.90 2.620 16.46  0  1    4    4
Mazda RX4 Wag     21.0   6  160 110 3.90 2.875 17.02  0  1    4    4
Datsun 710        22.8   4  108  93 3.85 2.320 18.61  1  1    4    1
Hornet 4 Drive    21.4   6  258 110 3.08 3.215 19.44  1  0    3    1
Hornet Sportabout 18.7   8  360 175 3.15 3.440 17.02  0  0    3    2
Valiant           18.1   6  225 105 2.76 3.460 20.22  1  0    3    1

dfname <- 'cars1'
head(list1[[dfname]])

mpg cyl disp  hp drat    wt  qsec vs am gear carb
Mazda RX4         21.0   6  160 110 3.90 2.620 16.46  0  1    4    4
Mazda RX4 Wag     21.0   6  160 110 3.90 2.875 17.02  0  1    4    4
Datsun 710        22.8   4  108  93 3.85 2.320 18.61  1  1    4    1
Hornet 4 Drive    21.4   6  258 110 3.08 3.215 19.44  1  0    3    1
Hornet Sportabout 18.7   8  360 175 3.15 3.440 17.02  0  0    3    2
Valiant           18.1   6  225 105 2.76 3.460 20.22  1  0    3    1
SteveM
  • 2,226
  • 3
  • 12
  • 16