更好地cbind新计算的列并快速命名输出

时间:2014-11-30 21:20:10

标签: r columnname cbind

我终于在R中失去了循环的习惯。基本上通常计算新列,然后对这些新列进行计算和聚合。 但我有一个关于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)

**已编辑** RomanLuštrik在下面的评论中添加了一个很好的解决方案。

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

2 个答案:

答案 0 :(得分:1)

向data.frame添加新变量的一种方法是通过$运算符。帮助页面(?"$")以

的形式显示常用用法
x$i <- value

其中i是新变量名称,value是其关联值。

答案 1 :(得分:0)

您可以在作业左侧命名新列,如下所示:

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

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