【发布时间】:2016-11-17 15:57:21
【问题描述】:
我有一个数据集。我可以选择从 Stata 文件或 SPSS 文件将其加载到 R 上。
在这两种情况下,它都使用 haven 包正确加载。
日期被正确识别。
但是当我使用 data.table 的 fwrite 函数将其保存到磁盘时。fwrite(ppp, "ppp.csv", sep=",", col.names = TRUE)
我有一个问题,日期消失并转换为不同的数字。例如,日期 1967-08-06 在 csv 文件中保存为 -879
我也尝试过使用 fwrite 选项,例如 quote=FALSE,但没有成功。
我上传了一小部分文件样本、spss、stata 和保存的 csv。
这是代码,以便您更轻松地做事。
library(haven)
library(data.table)
ppp <- read_sav("pspss.sav") # choose one of these two.
ppp <- read_dta("pstata.dta") # choose one of these two.
fwrite(ppp, "ppp.csv", sep=",", col.names = TRUE)
真正的整张表有一千多个变量和一百万个人。这就是为什么我想用一种快速的方式来做事。
http://www73.zippyshare.com/v/OwzwbyQq/file.html
这是给@ArtificialBreeze:
> head(my)
# A tibble: 6 x 9
ID_2006_2011 TIS FECHA_NAC_2006 año2006 Edad_31_12_2006 SEXO_2006
<dbl> <chr> <date> <date> <dbl> <chr>
1 1.60701e+11 BBNR670806504015 1967-08-06 2006-12-31 39 M
2 1.60701e+11 BCBD580954916014 1958-09-14 2006-12-31 48 F
3 1.60701e+11 BCBL451245916015 1945-12-05 2006-12-31 61 F
4 1.60701e+11 BCGR610904916012 1961-09-04 2006-12-31 45 M
5 1.60701e+11 BCMR580148916015 1958-01-08 2006-12-31 48 F
6 1.60701e+11 BCMX530356917018 1953-03-16 2006-12-31 53 F
# ... with 3 more variables: PAIS_NAC_2006 <dbl>, FECHA_ALTA_TIS_2006 <date>,
# FECHA_ALTA_TIS_2006n <date>
【问题讨论】:
-
我可以知道为什么投反对票吗?
-
您能否在您的问题 (
head(yourData)) 中将一小部分数据放在这里?人们访问将更容易、更合法。另外,日期是否存储为字符串? -
可能是因为粗略的 zippyshare 东西。作为参考,这是你的 FR 和 github.com/Rdatatable/data.table/issues/1772 包就它“没有意义”而言,你知道它的意义,因为它在链接中向你解释过......就我个人而言,我有一个
write_dates(DT, patt)函数将所有符合patt模式的日期列转换为具有我所需格式的字符串。所以我做library(magrittr); fwrite(copy(DT) %>% write_dates("date$"), file = "DT.csv") -
我对 zippyshare 投了反对票。选择一个不会试图劫持浏览器会话的公共存储库。
-
@skan 我会使用
dput,它不需要验证码,速度非常快,不需要任何第三方主机。
标签: r date datetime data.table posixct