Я в общей сложности SQL невежду, поэтому я прошу прощения, если это очень просто ..учета ведущие нули с sqldf
У меня есть данные, которые содержат столбец ID, состоящий из цифр, а во многих случаях содержат ведущие нули. Я хотел бы импортировать данные с помощью sqldf, но при этом я теряю ведущие нули для них. Есть ли способ сохранить ведущие нули? Может быть, каким-то образом указывая, что все столбцы являются символьными классами, например, в R. read.table?
я не могу разделить свои данные в связи с характером моей работы, но я делаю что-то вроде этого:
a <- formatC(sample(1:99, 10), width = 8, format = "d", flag = "0")
fakeDF <- data.frame(v1=a, v2=rnorm(10, 0, 1))
f1 <- tempfile()
write.table(fakeDF, file=f1, quote=FALSE, row.names=FALSE, col.names=FALSE, sep="|")
f2 <- file(f1)
mydat <- sqldf::sqldf("SELECT * FROM f2", dbname=tempfile(),
file.format=list(header=FALSE, sep="|", eol="\n", skip=1))
mydat
Кроме того, я хотел бы добавить, что длина не одинакова для всех этих идентификаторов. Если это возможно, я хотел бы избежать необходимости вручную пэд данные нулями постфактум ..
В ваших * реальных * данных находится столбец ('v1'), хранящийся на диске с ведущими нулями? – nrussell
@ nrussell Да, это так. – panterasBox
Честно говоря, я бы просто прочитал данные в обычном режиме с помощью 'read.table (..., colClasses =" character ")' - или еще лучше, используйте 'data.table :: fread' - и затем обработайте данные соответствующим образом. Вы всегда можете использовать 'sqldf' для управления объектами, которые вы читаете. – nrussell