Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/url/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何诊断R导入中的重复级别_R_Validation_Import_Spss - Fatal编程技术网

如何诊断R导入中的重复级别

如何诊断R导入中的重复级别,r,validation,import,spss,R,Validation,Import,Spss,我使用R来分析来自的大型数据文件,这些文件在人口普查记录上发布了复杂的微观数据。IPUMS以SPSS、SAS或STATA文件的形式提供其摘录。为了将数据输入R,我很幸运地下载了SPSS版本,并使用了“外文”库中的read.SPSS函数: 当我查看.SPS文件时,我确实看到此位置有两个条目: 26052 "Br. Virgin Islands, ns" 26069 "Br. Virgin Islands, ns" 但是,我在数据中没有看到该位置的任何实例: NROW(subset(ipu

我使用R来分析来自的大型数据文件,这些文件在人口普查记录上发布了复杂的微观数据。IPUMS以SPSS、SAS或STATA文件的形式提供其摘录。为了将数据输入R,我很幸运地下载了SPSS版本,并使用了“外文”库中的
read.SPSS
函数:

当我查看.SPS文件时,我确实看到此位置有两个条目:

26052   "Br. Virgin Islands, ns"
26069   "Br. Virgin Islands, ns"
但是,我在数据中没有看到该位置的任何实例:

NROW(subset(ipums, ipums$BPLD=="Br. Virgin Islands, ns"))    #0
这很可能是因为这不是一个可能在数据中显示的常见位置,但我不能假设在未来的项目中总是这样所以我的问题的第二部分是,一个具有重复因子的SPSS文件是否至少需要正确的值,或者生成此警告消息的文件是否有可能损坏。


至于解决问题,我看到了一些相关的StackOverflow帖子,比如,但我不确定它们是否解决了我在处理来自第三方的复杂公共数据时遇到的问题。对于我来说,清除具有重复值的因子的最有效方法是什么,这样我才能对数据有充分的信心?

您是否可以尝试导入因子并将其指定为false,方法如下:

#havent tested
read.spss(x...,stringsAsFactors=FALSE)
或者从read.spss的帮助命令

read.spss(x...,use.value.labels=FALSE)


?read.spss

#use.value.labels   

#logical: convert variables with value labels into R factors with those levels?        
#This is only done if there are at least as many labels as values of the   
#variable #(when values without a matching label are returned as NA).

SPSS不要求值标签的唯一性。在此数据集中,BLPD是一个字符串。我相信read.spss会创建一个具有重复级别的因子,但会将所有重复值分配给其中一个。您可以在读取数据后使用droplevels()清除未使用的液位。

感谢您的回复!不幸的是,is不接受“stringsAsFactors=FALSE”。虽然从技术上讲,说“use.value.labels=FALSE”是可行的,但我会丢失关于每一行的所有信息。例如,我得到的不是一个状态,而是一个表示该状态的数字。每个分类列都是如此。read.spss的文档说:“这本书最初是在2000年编写的,此后对spss格式的更改支持有限(这并不多)。”随着时间的推移,文件格式发生了重大变化。这些都是以向后兼容的方式完成的,但在读取具有长变量名(>8字节)、长字符串(>255字节)、Unicode编码(自Statistics 21以来的默认编码)以及通过自定义属性扩展数据集或变量元数据的文件时,请务必小心。另外请注意,您可以使用R插件直接从统计数据创建一个R文件。明白了,谢谢!我将找到一个包含重复的摘录,它实际上显示在数据本身中,并测试droplevels(),然后将报告回来。
26052   "Br. Virgin Islands, ns"
26069   "Br. Virgin Islands, ns"
NROW(subset(ipums, ipums$BPLD=="Br. Virgin Islands, ns"))    #0
#havent tested
read.spss(x...,stringsAsFactors=FALSE)
read.spss(x...,use.value.labels=FALSE)


?read.spss

#use.value.labels   

#logical: convert variables with value labels into R factors with those levels?        
#This is only done if there are at least as many labels as values of the   
#variable #(when values without a matching label are returned as NA).