У меня есть объект фрейма данных test
с именами столбцов :
> test
a b c d e
1 -0.67 -0.02 -0.10 -0.22 -0.32
2 0.46 -1.51 -0.79 0.26 1.19
3 0.22 -0.18 -1.40 0.41 -0.32
4 -2.21 0.79 0.36 1.00 -0.51
5 -0.69 0.39 -0.76 -0.73 -0.43
. В этом формате я могу легко получить доступ к столбцам, используя нотацию test$b
. Я могу без труда преобразовать это в объект временного ряда:
test.ts <- ts(test, frequency=<value>, start=<value>
Однако, если это объект ts
, есть ли простой способ получить доступ к столбцам (или строкам )по имени, а не по номеру столбца? Объект test.ts
по-прежнему содержит информацию об имени столбца, показанную с помощью colnames
:
> colnames(test.ts)
[1] "a" "b" "c" "d" "e"
. Однако test.ts$b
не работает. Обратите внимание, что под «легко» я подразумеваю не писать что-то уродливое вроде test.ts[,which(colnames(test.ts)=="b"]
, потому что это непросто, это уродливо. Да, я мог бы написать свою собственную функцию для этого, но мне было интересно, есть ли встроенный -способ сделать это. Спасибо!
По запросу:
> dput(head(a))
structure(list(a = c(-0.67, 0.46, 0.22, -2.21, -0.69, -0.45),
b = c(-0.02, -1.51, -0.18, 0.79, 0.39, -1.33), c = c(-0.1,
-0.79, -1.4, 0.36, -0.76, 0.15), d = c(-0.22, 0.26, 0.41,
1, -0.73, -2.23), e = c(-0.32, 1.19, -0.32, -0.51, -0.43,
-0.58)),.Names = c("a", "b", "c", "d", "e"), row.names = c(NA,
6L), class = "data.frame")