rdataframer-faqdollar-sign

Dollar sign before a variable


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?


Solution

  • 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]