0

I am trying to select a column from a dataframe using a variable as a column name, with the problem that the column name is escaped. I have a couple of workarounds for doing it, which involve changing my code a bit too much, and anyway I've been looking around and I am curious if anybody knew the solution for this kind of weird case.

My dataset is actually a list of time series (which I construct after some operations), this would be a toy example.

df <- list(`01/19/17`=seq(1,10), `01/20/17`=seq(2,11))
> df
$`01/19/17`
 [1]  1  2  3  4  5  6  7  8  9 10

$`01/20/17`
 [1]  2  3  4  5  6  7  8  9 10 11

I don't put the escapes ` in the column names because I want to, but because they come as dates from the process I follow to construct the dataset.

If I know the column name I can access like this,

df$`01/19/17`

If I want to use a variable, looking around e.g. here I see I could rewrite it to something like this,

`$`(df, `01/19/17`)

But I cannot assign a variable like this,

> name1 <- `01/19/17`
Error: object '01/19/17' not found

and if assign it this other way I get a NULL,

> name1 <- "01/19/17"
> `$`(df, name1)
NULL

As I say there are workarounds like e.g. changing all the column names in the list of series, but I just would like to know. Thank you so much.

1
  • You get NULL because you are trying to access name1 as a variable of df which it isn't. You will need to use [ to use names Commented May 5, 2017 at 17:54

1 Answer 1

1

You can access with brackets rather than with $, even when the key is a string:

df <- list(`01/19/17`=seq(1,10), `01/20/17`=seq(2,11))
name1 <- "01/19/17"

df[[name1]]
# [1]  1  2  3  4  5  6  7  8  9 10
Sign up to request clarification or add additional context in comments.

Comments

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.