2014-11-30 10 views
1

Наконец-то я потерял привычку к циклам в Р. Обычно обычно вычисляет новые столбцы, а затем выполняет вычисления и агрегации в этих новых столбцах. Но у меня есть вопрос относительно cbind, который я использую для добавления столбцов.Лучший способ для вычисления недавно вычисленного столбца и быстрого вывода имен

Есть ли лучший способ, чем использовать bind для таких вещей?

Именование этого нового столбца всегда выполняется мной в этом утомительном виде ... Что-нибудь умнее/проще там?

library(quantmod) 
getSymbols("^GSPC") 
GSPC <- cbind(GSPC, lag(Cl(GSPC), k=1)) #Doing some new column calculation 
names(GSPC)[length(GSPC[1,])] <- "Laged_1_Cl" #Naming this new column 
GSPC <- cbind(GSPC, lag(Cl(GSPC), k=2)) 
names(GSPC)[length(GSPC[1,])] <- "Laged_2_Cl" 
tail(GSPC) 

** EDITED ** Роман Luštrik добавил большое решение в комментариях ниже.

GSPC$Laged_3_Cl <- lag(Cl(GSPC), k=3) 
tail(GSPC) 
+2

бы не 'ГССР $ newvar <- лаг (Cl (ГССР), к = 1)' также работать? –

+1

Да. Спасибо за помощь. Любой шанс вы могли бы разместить в качестве ответа? – maze

ответ

1

Одним из способов добавления новых переменных в data.frame через оператора $. Помощь страница (?"$") показывает общее использование в виде

x$i <- value 

Где i является новым именем переменным и value являются связанным с ним значением.

0

можно назвать новый столбец на левой стороне задания, как так:

exdat <- data.frame(lets = LETTERS[1:10], 
        nums = 1:10) 

exdat$combo <- paste0(exdat$lets, exdat$nums)