[英]Download and load an SAS (.XPT) dataset from an online source in R
我正在嘗試從國家健康與營養檢查調查( http://wwwn.cdc.gov/nchs/nhanes/search/DataPage.aspx?Component=Questionnaire&CycleBeginYear=的網站)下載並加載SAS數據集(.XPT) 。 2009 )。
我感興趣的特定數據集是SXQ_F.XPT
。 我嘗試了3種方法:
1,使用URL直接在read.xport
加載它:
library(foreign)
mydata <- read.xport("http://wwwn.cdc.gov/Nchs/Nhanes/2009-2010/SXQ_F.XPT")
Error in lookup.xport(file) : unable to open file: 'Invalid argument'
2.首先使用download.file
:
download.file("http://wwwn.cdc.gov/Nchs/Nhanes/2009-2010/SXQ_F.XPT", "download_SXQ_F.XPT")
mydata <- read.xport("download_SXQ_F.XPT")
Error in lookup.xport(file) : file not in SAS transfer format
3,通過點擊鼠標手動下載數據集,然后從wd加載:
mydata <- read.xport("SXQ_F.XPT")
SEQN SXD021 SXQ800 SXQ803 SXQ806 SXQ809 SXQ700
1 51624 1 1 1 1 2
2 51628 1 NA NA NA NA
3 51629 1 1 1 1 2
4 51630 1 NA NA NA NA
5 51643 1 NA NA NA NA
6 51645 1 1 2 2 2
為什么#3但不能#2無效? 如何僅使用R下載和加載數據?
根據要求,這是運行sessionInfo()
的輸出:
R version 3.2.1 (2015-06-18)
Platform: x86_64-w64-mingw32/x64 (64-bit)
Running under: Windows 8 x64 (build 9200)
locale:
[1] LC_COLLATE=English_United States.1252 LC_CTYPE=English_United States.1252 LC_MONETARY=English_United States.1252
[4] LC_NUMERIC=C LC_TIME=English_United States.1252
attached base packages:
[1] grid stats graphics grDevices utils datasets methods base
other attached packages:
[1] descr_1.1.1 plyr_1.8.3 weights_0.80 gdata_2.17.0 Hmisc_3.16-0 ggplot2_1.0.1 Formula_1.2-1 survival_2.38-1
[9] lattice_0.20-31 foreign_0.8-63 sas7bdat_0.5
loaded via a namespace (and not attached):
[1] Rcpp_0.11.6 cluster_2.0.1 magrittr_1.5 splines_3.2.1 MASS_7.3-40 munsell_0.4.2
[7] xtable_1.7-4 colorspace_1.2-6 stringr_1.0.0 tools_3.2.1 nnet_7.3-9 gtable_0.1.2
[13] latticeExtra_0.6-26 gtools_3.5.0 digest_0.6.8 gridExtra_0.9.1 RColorBrewer_1.1-2 reshape2_1.4.1
[19] acepack_1.3-3.3 rpart_4.1-9 stringi_0.5-5 scales_0.2.5 proto_0.3-10
正如R help所指出的那樣,在使用download.file
某些文件時,必須更仔細地訓練Windows系統。 就是這種情況。
在download.file
添加mode="wb"
選項應將文件保存為read.xport
可用的格式。
從?download.file
> mode
:
寫入文件的方式。 有用的值是“ w”,“ wb”(二進制),“ a”(附加)和“ ab”。
我最近在CRAN上發布了軟件包nhanesA。
install.packages("nhanesA")
sxq_f <- nhanes('SXQ_F') ## Imports as data frame
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.