Bird
Raised Fist0
R Programmingprogramming~5 mins

Accessing columns ($, []) in R Programming

Choose your learning style10 modes available
Introduction

We use $ and [] to get specific columns from a table of data. This helps us look at or change just the part we want.

You want to see just one column from a table of data.
You need to change values in a specific column.
You want to use a column's data in a calculation.
You want to add a new column or remove one.
You want to check the values inside a column.
Syntax
R Programming
dataframe$column_name

dataframe["column_name"]

dataframe[["column_name"]]

The $ sign is used to pick a column by name directly.

The [] brackets can select columns by name or position, but using double brackets [[ ]] returns the column as a vector.

Examples
This gets the column named 'age' from the dataframe df using $.
R Programming
df$age
This gets the column 'age' as a one-column dataframe using single brackets.
R Programming
df["age"]
This gets the column 'age' as a vector using double brackets.
R Programming
df[["age"]]
This gets the second column of df as a one-column dataframe.
R Programming
df[2]
Sample Program

This program creates a small table with names and ages. It shows three ways to get the 'age' column: with $, with single [], and with double [[]]. It prints each result so you can see the difference.

R Programming
df <- data.frame(name = c("Anna", "Ben", "Cara"), age = c(25, 30, 22))

# Access age column using $
age_vector <- df$age
print(age_vector)

# Access age column using single []
age_df <- df["age"]
print(age_df)

# Access age column using double [[]]
age_vector2 <- df[["age"]]
print(age_vector2)
OutputSuccess
Important Notes

Using $ is simple but only works with column names that are valid variable names (no spaces or special characters).

Using [] with column names returns a dataframe, which keeps the column as a table.

Using [[]] returns the column as a simple vector, which is useful for calculations.

Summary

Use $ to quickly get a column by name as a vector.

Use [] with a column name to get a one-column dataframe.

Use [[]] to get a column as a vector when you want to work with its values directly.

Practice

(1/5)
1. In R, which operator is used to extract a column from a dataframe as a vector by its name?
easy
A. The $ operator
B. The [] operator with column name
C. The [[]] operator with column index
D. The : operator

Solution

  1. Step 1: Understand $ operator usage

    The $ operator extracts a column from a dataframe as a vector by its name.
  2. Step 2: Compare with other operators

    The [] operator returns a dataframe, [[]] returns a vector but requires double brackets, and : is unrelated.
  3. Final Answer:

    The $ operator -> Option A
  4. Quick Check:

    $ extracts vector column = C [OK]
Hint: Use $ for quick vector column access by name [OK]
Common Mistakes:
  • Using [] returns a dataframe, not a vector
  • Confusing [[]] with []
  • Using : operator for columns
2. Which of the following is the correct syntax to get a one-column dataframe named 'age' from dataframe df?
easy
A. df['age']
B. df$age
C. df[['age']]
D. df.age

Solution

  1. Step 1: Identify syntax for one-column dataframe

    Using single brackets with a column name, like df['age'], returns a one-column dataframe.
  2. Step 2: Differentiate from other options

    df$age and df[['age']] return vectors, df.age is invalid syntax in R.
  3. Final Answer:

    df['age'] -> Option A
  4. Quick Check:

    Single brackets with name = one-column dataframe [OK]
Hint: Use single brackets with quotes for one-column dataframe [OK]
Common Mistakes:
  • Using $ returns a vector, not dataframe
  • Using [[]] returns a vector, not dataframe
  • Using dot notation (df.age) which is invalid
3. Given the dataframe df <- data.frame(name=c('Ann','Bob'), age=c(25,30)), what is the output of class(df['age'])?
medium
A. "integer"
B. "numeric"
C. "data.frame"
D. "vector"

Solution

  1. Step 1: Understand df['age'] output type

    Using single brackets with a column name returns a dataframe, so class(df['age']) is "data.frame".
  2. Step 2: Differentiate from vector classes

    Using df$age or df[['age']] returns a vector of class "numeric" or "integer" but not a dataframe.
  3. Final Answer:

    "data.frame" -> Option C
  4. Quick Check:

    Single bracket returns dataframe class = A [OK]
Hint: Single brackets keep dataframe class, double brackets extract vector [OK]
Common Mistakes:
  • Assuming df['age'] returns a vector
  • Confusing class of vector and dataframe
  • Using df$age which returns numeric vector
4. Consider the code: df <- data.frame(x=1:3, y=4:6); col <- df['x'] + 1. What is the error in this code?
medium
A. The column name 'x' is incorrect
B. You cannot add 1 to a dataframe
C. df['x'] returns a vector, so addition is valid
D. The dataframe df is not defined

Solution

  1. Step 1: Analyze df['x'] type

    df['x'] returns a one-column dataframe, not a vector.
  2. Step 2: Understand addition operation

    Adding 1 to a dataframe causes an error because arithmetic operations expect vectors or numbers.
  3. Final Answer:

    You cannot add 1 to a dataframe -> Option B
  4. Quick Check:

    Adding number to dataframe causes error = A [OK]
Hint: Use [[]] or $ to get vector before arithmetic [OK]
Common Mistakes:
  • Assuming df['x'] is a vector
  • Using wrong column name
  • Ignoring that df is defined
5. You want to add 5 to every value in the 'score' column of dataframe df and keep the result as a vector. Which code correctly does this?
hard
A. df.score + 5
B. df['score'] + 5
C. df[score] + 5
D. df[['score']] + 5

Solution

  1. Step 1: Identify how to get vector column

    df[['score']] extracts the 'score' column as a vector suitable for arithmetic.
  2. Step 2: Check other options

    df.score is invalid syntax in R (Python-style dot notation), df['score'] returns a dataframe causing error on addition, df[score] is invalid without quotes around column name.
  3. Final Answer:

    df[['score']] + 5 -> Option D
  4. Quick Check:

    Double brackets extract vector for math = D [OK]
Hint: Use double brackets to get vector for calculations [OK]
Common Mistakes:
  • Using single brackets returns dataframe, causing errors
  • Forgetting quotes around column name in []
  • Assuming df[score] works without quotes
  • Using Python-style dot notation (df.score)
Recommended

Ready to prove it?

Pass the test and this pattern moves unknown strong while earning +1 Grip toward your certificate.

10 questions~5 mineasy hard