Dollar sign before a variable

53,186

Solution 1

To access a column, use:

my_data[ , cond]

or

my_data[[cond]]

The ith row can be accessed with:

my_data[i, ]

Combine both to obtain the desired value:

my_data[i, cond]

or

my_data[[cond]][i]

Solution 2

I guess you need get().

For example,
get(x,list), where list is the list and x is the variable(can be a string), which equals list$x.

But in get(x,list), x can be a variable while using $, x cannot be a variable.

Solution 3

$ works on columns, not individual column objects. It's a form of vectorization. The code

corrections$BookDate = as.Date(corrections$BookDate, format = "%m/%d/%Y")

converts the contents of the BookDate column of the corrections table from strings to Date objects. It performs it in one operation, assignment.

Do the following and it will fix your problem:

new_data <- rbind(new_data, c(cond, my_data$cond))
Share:
53,186
this.is.not.a.nick
Author by

this.is.not.a.nick

PhD student, psychologist.

Updated on April 11, 2021

Comments

  • this.is.not.a.nick
    this.is.not.a.nick about 3 years

    I have this sample code to create a new data frame 'new_data' from the existing data frame 'my_data'.

    new_data = NULL
    n = 10 #this number correspond to the number of rows in my_data
    conditions = c("Bas_A", "Bas_T", "Oper_A", "Oper_T") # the vector characters correspond to the target column names in my_data
    for (cond in conditions){
        for (i in 1:n){
            new_data <- rbind(new_data, c(cond, my_data$cond[i]))
        }
    }
    

    The problem is that my_data$cond (where cond is a variable, and not the column name) is not accepted.

    How can I call a column of a data frame by using, after the dollar sign, a variable value?