2014-01-22 3 views
0

Я пытаюсь использовать пакет R reseape для изменения рамки данных, которую я наклеил ниже. В принципе, я хотел бы создать новый кадр данных, который объединяет переменные V2 и V3 в столбцы для всех возможных комбинаций V2 и V3 со строками в качестве даты. Я попытался использовать функцию трансляции reshape, однако я не могу заставить Date отображаться в строках. Переменные конкатенируются в именах столбцов, как я хочу, но дата не включена.R reshape package

Это фрейм данных станд:

V2  V3 V5  Date 
AUS  CR 15344 2000-01-01 
ALI  NG 3952  2000-01-01 
EUR  CR 19296 2000-01-01 
AUS  MO 5826  2000-01-01 

Когда я применить литье (станд, дата ~ V2 ~ V3, значение = «V5»), я получить кадр, как показано ниже, однако я не могу чтобы также получить столбец «Дата». Я сделал много проб и ошибок с литьем и расплавом безрезультатно. Любые предложения будут оценены

AUS.CR ALI.NG EUR.CR 
15344 3952 19296 
20108 4000 18568 

ответ

3

Вы можете использовать пакет reshape (функция cast) или reshape2 с dcast:

x <- read.table(header=T,text='V2  V3 V5  Date 
AUS  CR 15344 2000-01-01 
ALI  NG 3952  2000-01-01 
EUR  CR 19296 2000-01-01 
AUS  MO 5826  2000-01-01') 

С reshape и cast:

library(reshape) 
cast(x, Date ~ V2 + V3, value='V5') 
#   Date ALI_NG AUS_CR AUS_MO EUR_CR 
# 1 2000-01-01 3952 15344 5826 19296 

С reshape2 и dcast (Сэм e)

library(reshape2) 
dcast(x, Date ~ V2 + V3, value.var='V5')