2016-03-26 26 views
1

Tarihi, JSON biçimine dönüştürmek istiyorum. R all.elasticitiesdata.frame şuna benzer: Ben çıktı alıyorumDönüştürme tarihi, R için JSON biçiminde

x <- toJSON(unname(split(all.elasticities, 1:nrow(all.elasticities)))) 

PREVIOUS_START_DATE PREVIOUS_PRICE PREVIOUS_QUANTITY PRE_No_OF_WEEKS CURRENT_START_DATE 
     2015-12-20   2.79   20680.5    2   2015-12-20   
     2016-01-17   2.29   21049.5    4   2016-01-17   
     2016-01-31   1.69   24689.5    2   2016-01-31  

kullanıyorum,

"[{\"PREVIOUS_START_DATE\":16789,\"PREVIOUS_PRICE\":2.79,\"PREVIOUS_QUANTITY\":20680.5,\"PRE_No_OF_WEEKS\":2,\"CURRENT_START_DATE\":16789},{\"PREVIOUS_START_DATE\":16817,\"PREVIOUS_PRICE\":2.29,\"PREVIOUS_QUANTITY\":21049.5,\"PRE_No_OF_WEEKS\":4,\"CURRENT_START_DATE\":16817},{\"PREVIOUS_START_DATE\":16831,\"PREVIOUS_PRICE\":1.69,\"PREVIOUS_QUANTITY\":24689.5,\"PRE_No_OF_WEEKS\":2,\"CURRENT_START_DATE\":16831}]" 

Tarihler sayılar dönüştürülür alıyorsanız. Tarih formatını tutmak istiyorum. Bir yorumda edildi

+1

"toJSON" işlevini kullanmadan önce tarihinizi bir karaktere dönüştürün. – tchakravarty

+0

toJSON (all.elasticities) 'i denediniz mi? – akrun

+0

Bu formatı JNSON (all.elasticities) olarak almak istemiyorum. – sayali

cevap

0

gibi, ilk olarak bir karaktere tarihinizi dönüştürmek gerekir: Bir karaktere dönüştürmek olmadığında temsil zaman

x = as.Date("2016-01-01") 
RJSONIO::toJSON(as.character(x)) 

, değer, bir sayısal için değiştirilir 1970'den beri gün sayısı

as.numeric(x) 
as.numeric(x)/365 
1

library(jsonlite) tarih biçimleri ile çalışır ve her iki data.frame parçalamaya gerek kalmadan da yoktur.

str(all.elasticities) 
'data.frame': 3 obs. of 5 variables: 
$ PREVIOUS_START_DATE: Date, format: "2015-12-20" "2016-01-17" "2016-01-31" 
$ PREVIOUS_PRICE  : num 2.79 2.29 1.69 
$ PREVIOUS_QUANTITY : num 20680 21050 24690 
$ PRE_No_OF_WEEKS : int 2 4 2 
$ CURRENT_START_DATE : Date, format: "2015-12-20" "2016-01-17" "2016-01-31" 


> jsonlite::toJSON(all.elasticities, pretty=T) 
[ 
    { 
    "PREVIOUS_START_DATE": "2015-12-20", 
    "PREVIOUS_PRICE": 2.79, 
    "PREVIOUS_QUANTITY": 20680.5, 
    "PRE_No_OF_WEEKS": 2, 
    "CURRENT_START_DATE": "2015-12-20" 
    }, 
    { 
    "PREVIOUS_START_DATE": "2016-01-17", 
    "PREVIOUS_PRICE": 2.29, 
    "PREVIOUS_QUANTITY": 21049.5, 
    "PRE_No_OF_WEEKS": 4, 
    "CURRENT_START_DATE": "2016-01-17" 
    }, 
    { 
    "PREVIOUS_START_DATE": "2016-01-31", 
    "PREVIOUS_PRICE": 1.69, 
    "PREVIOUS_QUANTITY": 24689.5, 
    "PRE_No_OF_WEEKS": 2, 
    "CURRENT_START_DATE": "2016-01-31" 
    } 
] 
İlgili konular