SORU
23 EKİM 2012, Salı


Okuma colClasses bağımsız değişkeni için belirttiğiniz Tarih biçimi.tablo/okuyun.csv

Soru:

Bir şekilde okuyun colClasses argümanı kullanarak Tarih biçimini belirtmek için var.tablo/okuyun.csv?

(Aldıktan sonra dönüştürebilirim farkındayım, ama bu gibi birçok tarihi sütun ile, daha kolay yapmak ithalat adımda)


Örnek:

Bir ben var .tarih ile csv formatında %d/%m/%Y sütun.

dataImport <- read.csv("data.csv", colClasses = c("factor","factor","Date"))

Bu dönüşüm yanlış olur. Örneğin, 15/07/2008 olur 0015-07-20.


Tekrarlanabilir kod:

data <- 
structure(list(func_loc = structure(c(1L, 2L, 3L, 3L, 3L, 3L, 
3L, 4L, 4L, 5L), .Label = c("3076WAG0003", "3076WAG0004", "3076WAG0007", 
"3076WAG0009", "3076WAG0010"), class = "factor"), order_type = structure(c(3L, 
3L, 1L, 1L, 1L, 1L, 2L, 2L, 3L, 1L), .Label = c("PM01", "PM02", 
"PM03"), class = "factor"), actual_finish = structure(c(4L, 6L, 
1L, 2L, 3L, 7L, 1L, 8L, 1L, 5L), .Label = c("", "11/03/2008", 
"14/08/2008", "15/07/2008", "17/03/2008", "19/01/2009", "22/09/2008", 
"6/09/2007"), class = "factor")), .Names = c("func_loc", "order_type", 
"actual_finish"), row.names = c(NA, 10L), class = "data.frame")


write.csv(data,"data.csv", row.names = F)                                                        

dataImport <- read.csv("data.csv")
str(dataImport)
dataImport

dataImport <- read.csv("data.csv", colClasses = c("factor","factor","Date"))
str(dataImport)
dataImport

Ve burada bir çıkış gibi görünüyor:

code output

CEVAP
23 EKİM 2012, Salı


Bir dize kabul eder ve bir istediğiniz Tarih biçimini kullanarak dönüştüren kendi işlevi yazabilirsiniz, setAs as bir yöntem olarak ayarlamak için kullanın. Sonra colClasses bir parçası olarak işlev kullanabilirsiniz.

Deneyin:

setAs("character","myDate", function(from) as.Date(from, format="%d/%m/%Y") )

tmp <- c("1, 15/08/2008", "2, 23/05/2010")
con <- textConnection(tmp)

tmp2 <- read.csv(con, colClasses=c('numeric','myDate'), header=FALSE)
str(tmp2)

Eğer verileriniz için çalışmak, gerekirse değiştirin.

- - - Edit

İstersin setClass('myDate') ilk önlemek için Uyarı (umursamayacağını uyarı, ama can almak can sıkıcı eğer bunu sık sık yapar ve bu basit bir çağrı alır yol açabilir).

Bunu Paylaş:
  • Google+
  • E-Posta
Etiketler:

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • Creavite

    Creavite

    8 Mart 2009
  • dope2111

    dope2111

    29 HAZİRAN 2009
  • FUNKER530 - Veteran Community & Combat Footage

    FUNKER530 -

    25 Ocak 2007