在另一个文件中定义变量时,将固定宽度文件导入R

在另一个文件中定义变量时,将固定宽度文件导入R,r,sas,spss,R,Sas,Spss,我正在尝试将这些数据导入R 我知道我需要调查包,但这些文件很奇怪 有人知道怎么做吗?虽然我不能完全回答你的问题,但我可以让你开始。您不确定该怎么做的原因是数据的格式与您习惯的格式不同。数据采用ASCII格式。以下是网站上的内容: “注意:需要使用SAS和SPSS程序将ASCII转换为SAS和SPSS数据集。如何使用ASCII数据因软件包而异。通常必须指定每个变量的列位置。每个变量的列位置可在每年数据的文档中找到。有关详细信息,请参阅软件文档。” ASCII只是一种不同的数据存储方式,如.csv

我正在尝试将这些数据导入R

我知道我需要调查包,但这些文件很奇怪


有人知道怎么做吗?

虽然我不能完全回答你的问题,但我可以让你开始。您不确定该怎么做的原因是数据的格式与您习惯的格式不同。数据采用ASCII格式。以下是网站上的内容:

“注意:需要使用SAS和SPSS程序将ASCII转换为SAS和SPSS数据集。如何使用ASCII数据因软件包而异。通常必须指定每个变量的列位置。每个变量的列位置可在每年数据的文档中找到。有关详细信息,请参阅软件文档。”


ASCII只是一种不同的数据存储方式,如.csv或其他格式,但它的可读性不如列中的所有数据。您可以开始搜索如何将ASCII数据导入R并从R开始。很抱歉,我可以提供更多帮助。

虽然我不能完全回答您的问题,但我可以让您开始。您不确定的原因是什么目前需要做的是,数据的格式不是您习惯的格式。数据是ASCII格式。以下是网站上的说明:

“注意:需要使用SAS和SPSS程序将ASCII转换为SAS和SPSS数据集。如何使用ASCII数据因软件包而异。通常必须指定每个变量的列位置。每个变量的列位置可在每年数据的文档中找到。有关详细信息,请参阅软件文档。”


ASCII只是一种不同的数据存储方式,如.csv或其他格式,但它的可读性不如列中的所有数据。您可以开始搜索如何将ASCII数据导入R并从那里开始。很抱歉,我可以提供更多帮助。

要读取数据,可以使用
read.fwf
base方法

如评论中所述,您可以从SPSS语法中获得一致性:

我已使用文本编辑器快速获取列宽:

vec <- c(5, 50, 50, 8, 8, 3, 10, 8, 8, 8, 3, 3, 3, 3, 3, 8, 8, 8, 8, 
3, 3, 1, 1, 8, 8, 8, 8, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 
1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 
1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 
1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 
1, 1, 1, 1, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 
3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 
3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 
3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 
3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 
3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 1, 1, 1, 1, 1, 1, 1, 
1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 
1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 3, 3, 3, 3, 3, 3, 
3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 
3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 
3)

请注意,可能需要修剪任何字符列。缺少的字符列也是“.”,因此您可能也希望删除这些字符列。

要读取中的数据,可以使用
read.fwf
基本方法

如评论中所述,您可以从SPSS语法中获得一致性:

我已使用文本编辑器快速获取列宽:

vec <- c(5, 50, 50, 8, 8, 3, 10, 8, 8, 8, 3, 3, 3, 3, 3, 8, 8, 8, 8, 
3, 3, 1, 1, 8, 8, 8, 8, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 
1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 
1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 
1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 
1, 1, 1, 1, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 
3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 
3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 
3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 
3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 
3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 1, 1, 1, 1, 1, 1, 1, 
1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 
1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 3, 3, 3, 3, 3, 3, 
3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 
3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 
3)


请注意,可能需要修剪任何字符列。缺少的也为“.”,因此您可能还希望删除这些字符列。

Hi Chris,文件(*.dat)如果是固定宽度的文本文件,您必须确定列的位置并指定它们。请参阅:O此数据集中有216个字母列。编辑:对不起,427。我在
sadc_2017_national.dat
dataset中得到314个?请参阅我发布的答案。啊,我知道了。我从2017年开始使用国家数据集。但实际上我将使用完整的数据集。嗨,克里斯,文件(*.dat)如果是固定宽度的文本文件,您必须确定列的位置并指定它们。请参阅:O此数据集中有216个字母列。编辑:对不起,427。我在
sadc_2017_national.dat
dataset中得到314个?请参阅我发布的答案。啊,我知道了。我从2017年开始使用国家数据集。但实际上我将使用完整的数据集。是的,看起来他们使用查找表设计来节省空间,因为它是一个庞大的数据集。看起来一个文件是以代码形式的数据,然后使用另一个文件来查找这些代码的含义。@Chris,你可以从spss文件中获得一致性并使用它,这需要一些时间,因为有这么多列:但是你知道应用它的代码吗?或者你是说我必须手动应用每个concord:oooooo Hadley Wickham编写了一些代码来加载这个数据集,但是它来自2013年的数据集:我正在试图找出如何为新的数据重新利用它。是的,看起来他们使用查找表设计来节省空间,因为它是一个巨大的数据集数据集。看起来一个文件是代码形式的数据,然后使用另一个文件来查找这些代码的含义。@克里斯,你可以从spss文件中获得一致性并使用它,这需要一些时间,因为有这么多列:但是你知道应用它的代码吗?或者你是说我必须手动应用每个一致性:oooooo hadleyWickham编写了一些代码来加载此数据集,但它来自2013年的数据集:我正试图找出如何为新数据重新调整其用途。请告诉我有一种自动化的方法,您必须复制粘贴。我发现Hadley Wickham在GitHub上发布了此数据集,但它只适用于2013年。我可能会尝试重新调整其用途他为这个数据导入脚本,看看我是否可以用它来导入2017年的数据,只是出于好奇。非常感谢你这么做。我希望这不是一个完全的痛苦!而且,这个数据集中有NA和“.”。你猜“.”代表什么而不是真正的NAs?不是100%。可能是这样的。”。“=”看到了问题但没有回答,而“”(或NA)可能跳过了问题。否则可能是使用的分析软件和变量类或类似的东西。我认为类似于后者的东西没有列。”还有NA,对吗?请告诉我有一种自动化的方法可以做到这一点,你必须复制粘贴。我发现Hadley Wickham在GitHub上发布了这个数据集,但它只到2013年。出于好奇,我可能会尝试重新调整他的导入脚本的用途,看看是否可以使用它导入2017年的数据。非常感谢你这么做。。我希望这不是一个完全的痛苦!而且,在这个数据集中有NA和“.”。你能猜到“.”代表的是什么而不是真正的NAs吗?不是100%。可能是“.”
df <- read.fwf(file = "c:/temp/file", widths = vec)
# Rename columns
names(df) <- names
# Inspect the head.
head(df, n=2)
# sitecode                                           sitename                                           sitetype sitetypenum year survyear weight stratum PSU record age sex grade race4 race7
# 1    XX    United States (XX)                                 National                                                     3 1991        1 0.2645   12210   5  29890   .   .     1     3     4
# 2    XX    United States (XX)                                 National                                                     3 1991        1 0.5060   12310  29  29891   .   .     .     .     .
# stheight stweight      bmi   bmipct qnobese qnowt q67 q66    sexid   sexid2  sexpart sexpart2 Q8 Q9 Q10 Q11 Q12 Q13 Q14 Q15 Q16 Q17 Q18 Q19 Q20 Q21 Q22 Q23 Q24 Q25 Q26 Q27 Q28 Q29 Q30 Q31 Q32 Q33
# 1      .        .      .          .         .     .  NA  NA        .        .        .        .  2  4  NA  NA   4  NA  NA  NA  NA   3  NA  NA  NA  NA  NA  NA  NA  NA   2   2   1   1   1  NA   2   4
# 2      .        .      .          .         .     .  NA  NA        .        .        .        . NA NA  NA  NA  NA  NA  NA  NA  NA   1  NA  NA  NA  NA  NA  NA  NA  NA   1   1   1   1   1  NA   1   1
# Q34 Q35 Q36 Q37 Q38 Q39 Q40 Q41 Q42 Q43 Q44 Q45 Q46 Q47 Q48 Q49 Q50 Q51 Q52 Q53 Q54 Q55 Q56 Q57 Q58 Q59 Q60 Q61 Q62 Q63 Q64 Q65 Q68 Q69 Q70 Q71 Q72 Q73 Q74 Q75 Q76 Q77 Q78 Q79 Q80 Q81 Q82 Q83 Q84
# 1  NA  NA  NA  NA  NA  NA   4   4   3  NA  NA  NA   5   5   5   1  NA  NA  NA  NA  NA   1  NA  NA   1   1   5   4   4   3   3   8   1  NA  NA  NA  NA  NA  NA  NA  NA  NA  NA  NA  NA  NA   6  NA  NA
# 2  NA  NA  NA  NA  NA  NA   6   2   2  NA  NA  NA   1   1   1   1  NA  NA  NA  NA  NA   1  NA  NA   1   1   2   2   2   3   3   2   3  NA  NA  NA  NA  NA  NA  NA  NA  NA  NA  NA  NA  NA   6  NA  NA
# Q85 Q86 Q87 Q88 Q89 QN8 QN9 QN10 QN11 QN12 QN13 QN14 QN15 QN16 QN17 QN18 QN19 QN20 QN21 QN22 QN23 QN24 QN25 QN26 QN27 QN28 QN29 QN30 QN31 QN32 QN33 QN34 QN35 QN36 QN37 QN38 QN39 QN40 QN41 QN42
# 1  NA  NA  NA  NA  NA   1   1    .    .    1    .    .    .    .    1    .    .    .    .    .    .    .    .    2    2    2    2    1    .    1    2    .    .    .    .    .    .    1    1    1
# 2  NA  NA  NA  NA  NA   .   .    .    .    .    .    .    .    .    2    .    .    .    .    .    .    .    .    1    1    2    2    1    .    2    .    .    .    .    .    .    .    1    1    1
# QN43 QN44 QN45 QN46 QN47 QN48 QN49 QN50 QN51 QN52 QN53 QN54 QN55 QN56 QN57 QN58 QN59 QN60 QN61 QN62 QN63 QN64 QN65 QN68 QN69 QN70 QN71 QN72 QN73 QN74 QN75 QN76 QN77 QN78 QN79 QN80 QN81 QN82 QN83
# 1    .    .    .    1    2    1    2    .    .    .    .    .    2    .    .    1    1    2    2    1    2    2    2    2    .    .    .    .    .    .    .    .    .    .    .    .    .    1    .
# 2    .    .    .    2    2    2    2    .    .    .    .    .    2    .    .    1    1    1    2    2    .    .    .    2    .    .    .    .    .    .    .    .    .    .    .    .    .    1    .
# QN84 QN85 QN86 QN87 QN88 QN89 qnfrcig qndaycig qnfrevp qndayevp qnfrskl qndayskl qnfrcgr qndaycgr qntb2 qntb3 qntb4 qniudimp qnshparg qnothhpl qndualbc qnbcnone qnfr0 qnfr1 qnfr2 qnfr3 qnveg0
# 1    .    .    .    .    .    .       2        2       .        .       .        .       .        .     .     .     .        .        .        .        .        2     .     .     .     .      .
# 2    .    .    .    .    .    .       2        2       .        .       .        .       .        .     .     .     .        .        .        .        .        .     .     .     .     .      .
# qnveg1 qnveg2 qnveg3 qnsoda1 qnsoda2 qnsoda3 qnmilk1 qnmilk2 qnmilk3 qnbk7day qnpa0day qnpa7day qndlype qnnodnt qbikehelmet qdrivemarijuana qcelldriving qpropertydamage qbullyweight qbullygender
# 1      .      .      .       .       .       .       .       .       .        .        .        .       1       .           2              NA           NA              NA           NA           NA
# 2      .      .      .       .       .       .       .       .       .        .        .        .       1       .          NA              NA           NA              NA           NA           NA
# qbullygay qchokeself qcigschool qchewtobschool qalcoholschool qtypealcohol qhowmarijuana qmarijuanaschool qcurrentcocaine qcurrentheroin qcurrentmeth qhallucdrug qprescription30d qgenderexp
# 1        NA         NA         NA             NA             NA           NA            NA               NA               1             NA           NA          NA               NA         NA
# 2        NA         NA         NA             NA             NA           NA            NA               NA               1             NA           NA          NA               NA         NA
# qtaughtHIV qtaughtsexed qtaughtstd qtaughtcondom qtaughtbc qdietpop qcoffeetea qsportsdrink qenergydrink qsugardrink qwater qfastfood qfoodallergy qwenthungry qmusclestrength qsunscreenuse
# 1          2           NA         NA            NA        NA       NA         NA           NA           NA          NA     NA        NA           NA          NA               1            NA
# 2          1           NA         NA            NA        NA       NA         NA           NA           NA          NA     NA        NA           NA          NA               2            NA
# qindoortanning qsunburn qconcentrating qcurrentasthma qwheresleep qspeakenglish qtransgender qnbikehelmet qndrivemarijuana qncelldriving qnpropertydamage qnbullyweight qnbullygender qnbullygay
# 1             NA       NA             NA             NA          NA            NA           NA            1                .             .                .             .             .          .
# 2             NA       NA             NA             NA          NA            NA           NA            .                .             .                .             .             .          .
# qnchokeself qncigschool qnchewtobschool qnalcoholschool qntypealcohol qnhowmarijuana qnmarijuanaschool qncurrentcocaine qncurrentheroin qncurrentmeth qnhallucdrug qnprescription30d qngenderexp
# 1           .           .               .               .             .              .                 .                2               .             .            .                 .           .
# 2           .           .               .               .             .              .                 .                2               .             .            .                 .           .
# qntaughtHIV qntaughtsexed qntaughtstd qntaughtcondom qntaughtbc qndietpop qncoffeetea qnsportsdrink qnspdrk1 qnspdrk2 qnspdrk3 qnenergydrink qnsugardrink qnwater qnwater1 qnwater2 qnwater3
# 1           2             .           .              .          .         .           .             .        .        .        .             .            .       .        .        .        .
# 2           1             .           .              .          .         .           .             .        .        .        .             .            .       .        .        .        .
# qnfastfood qnfoodallergy qnwenthungry qnmusclestrength qnsunscreenuse qnindoortanning qnsunburn qnconcentrating qncurrentasthma qnwheresleep qnspeakenglish qntransgender
# 1          .             .            .                2              .               .         .               .               .            .              .             .
# 2          .             .            .                2              .               .         .               .               .            .              .             .