Получить доступ к столбцу фрейма данных с помощью переменной
Рассмотрим следующий код
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]