Получить доступ к столбцу фрейма данных с помощью переменной

Рассмотрим следующий код

a = "col1"
b = "col2"
d = data.frame(a=c(1,2,3),b=c(4,5,6))

Этот код создает следующий фрейм данных

  a b
1 1 4
2 2 5
3 3 6

Однако желаемый фрейм данных

  col1 col2
1 1    4
2 2    5
3 3    6

Кроме того, я хотел бы сделать что-то вроде d$a, которое затем захватит d$col1, так как a = "col1"

Как я могу сказать R, что "a" - это переменная, а не имя столбца?

Ответы

Ответ 1

После создания фрейма данных вам нужно использовать ? colnames. Например, у вас будет:

d = data.frame(a=c(1,2,3), b=c(4,5,6))
colnames(d) <- c("col1", "col2")

Вы также можете назвать свои переменные при создании фрейма данных. Например:

d = data.frame(col1=c(1,2,3), col2=c(4,5,6))

Кроме того, если у вас есть имена столбцов, хранящихся в переменных, как в

a <- "col1"

вы не можете использовать $ для выбора столбца через d$a. R будет искать столбец с именем a. Вместо этого вы можете сделать либо d[[a]], либо d[,a].

Ответ 2

Вы можете сделать это таким образом

a = "col1"
b = "col2"
d = data.frame(a=c(1,2,3),b=c(4,5,6))

>d
  a b
1 1 4
2 2 5
3 3 6

#Renaming the columns
names(d) <- c(a,b)
> d
  col1 col2
1    1    4
2    2    5
3    3    6

#Calling by names
 d[,a]