关于涉及日期的变量赋值的R问题

时间:2012-03-25 19:15:04

标签: r

我是R的新手,试图通过CBOE的简单读取和Yahoo的quantmod数据来合并数据。理解R是如何工作的,我有一些问题。我正在通过CBOE(芝加哥期权委员会)阅读SKEW数据:

skew <- read.csv("http://www.cboe.com/publish/scheduledtask/mktdata/datahouse/Skewdailyprices.csv",skip=1,header=TRUE,stringsAsFactors=F)

第一列数据是以mm / dd / yyyy格式表示的日期。然后我尝试将其转换为日期:

skew.dte <- as.Date(skew[,1],format="%m/%d/%Y") 

哪个有效,但如果我这样做的话:

head(skew)    
      Date   SKEW    
1 1/2/1990 126.09     
2 1/3/1990 123.34    
3 1/4/1990 122.62    
4 1/5/1990 121.27    
5 1/8/1990 124.12    
6 1/9/1990 119.82

我的问题是,为什么dte不属于数据框skew?我认为skew.dte会这样做。

2 个答案:

答案 0 :(得分:4)

R允许变量名中的点,通常用于代替空格来分隔变量名称中的单词

skew.dte <- as.Date(skew[,1],format="%m/%d/%Y") 

将值赋给名为skew.dte的变量。

如果要将值添加到数据框,请使用

skew$dte <- as.Date(skew[,1],format="%m/%d/%Y") 

答案 1 :(得分:3)

如Conjugate所述,您需要使用$来访问对象(这里是数据帧)或[运算符]中的项目。有关详细信息,请参阅R user manual第6章

skew$dte <- as.Date(skew$Date,format="%m/%d/%Y") 

skew[,'dte'] <- as.Date(skew[,'Date'],format="%m/%d/%Y") 

(或其任何混合物)