[ ], [[ ]], $, subset()

R uses [ for subsetting (returns same type), [[ for extracting single elements, and $ for named columns/list elements. Negative indices exclude elements. Logical vectors can be used directly as masks.

basics
v <- c(10, 20, 30, 40, 50)

# By position
v[2]           # 20
v[c(1, 3)]     # 10 30
v[-1]          # exclude first: 20 30 40 50
v[2:4]         # 20 30 40

# By condition
v[v > 25]      # 30 40 50

# Matrix indexing [row, col]
m <- matrix(1:9, nrow = 3)
m[2, 3]        # row 2, col 3
m[1, ]         # entire row 1
m[, 2]         # entire col 2

# Data frame
df[1, ]                  # first row
df[, "species"]          # column by name
df[df$weight_g > 5, ]    # conditional row filter