при переходе от Excel к R опуская 0 с начала числа. Как я могу предотвратить это? - PullRequest
0 голосов
/ 21 апреля 2020

У меня есть серия почтовых индексов, которые хранятся в Excel (не мой выбор), которые мне нужно импортировать в R, но чтобы сохранить возможность использовать соответствующую функцию, мне нужно «0», которое начинается с большинства из этих почтовых индексов. Как мне не дать им R сбросить 0 при чтении CSV?

1 Ответ

1 голос
/ 21 апреля 2020

Эти данные сохраняются в виде .csv файла, но если вы хотите воспроизвести его, вам нужно будет выполнить следующие первые строки:

    ZIP<-structure(list(V1 = c("08979", "67689", "06978", "54823")), class = "data.frame", row.names = c(NA, 
-4L))

write.csv(ZIP, "Zips.csv")

Если вы читаете без каких-либо опций

ZIP<-read.csv("Zips.csv",header=F)
head(ZIP)
     V1
1  8979
2 67689
3  6978
4 54823

Вы пропускаете нули в начале, потому что R предполагает, что класс является целым числом или цифрой c, поэтому ноль в начале не имеет смысла. Однако, если вы установите colClasses = "character", вы можете избежать этого:

ZIP<-read.csv("Zips.csv",header=F, colClasses="character")

head(ZIP)
 V1
1 08979
2 67689
3 06978
4 54823

Это также работает как фактор:

ZIP<-read.csv("Zips.csv",header=F, colClasses="factor")
head(ZIP)
     V1
1 08979
2 67689
3 06978
4 54823
...