R вопрос о присвоении переменной с указанием даты - PullRequest
2 голосов
/ 25 марта 2012

Я новичок в R и пытаюсь объединить данные с помощью простого чтения из CBOE и количественных данных из Yahoo. У меня есть несколько проблем с пониманием того, как R работает. Я читаю данные SKEW из CBOE (Опционная комиссия Чикаго) через:

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

Первый столбец данных - это дата в формате мм / дд / гггг. Затем я попытался преобразовать это в дату:

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 ]

4 голосов
/ 25 марта 2012

R позволяет точкам в именах переменных, часто используемым вместо пробела, разделять слова в имени переменной

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

присваивает значения переменной с именем skew.dte.

Если вы хотите добавить значения во фрейм данных, используйте

skew$dte <- as.Date(skew[,1],format="%m/%d/%Y") 
3 голосов
/ 25 марта 2012

Как указано в Conjugate, вам нужно использовать $ для доступа к элементам внутри объекта (в данном случае это фрейм данных) или оператор [. Подробнее см. Руководство пользователя R Глава 6

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

или

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

(или любая их смесь)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...