首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >将PISA数据读入R- read.table错误

将PISA数据读入R- read.table错误
EN

Stack Overflow用户
提问于 2015-09-16 01:10:44
回答 2查看 660关注 0票数 2

我正在尝试使用read.table函数将PISA 2012研究(http://pisa2012.acer.edu.au/downloads.php)中的数据读取到R中。这是我尝试过的代码:

代码语言:javascript
复制
pisa  <- read.table("pisa2012.txt", sep = "")    

不幸的是,我一直收到以下错误消息:

代码语言:javascript
复制
Error in scan(file, what, nmax, sep, dec, quote, skip, nlines, na.strings,  
: line 2 did not have 184 elements    

我试着设置

代码语言:javascript
复制
header = T

但随后会得到以下错误消息

代码语言:javascript
复制
Error in scan(file, what, nmax, sep, dec, quote, skip, nlines, na.strings,  
 :line 1 did not have 184 elements

最后,这是.txt文件的样子...

http://postimg.org/image/4u9lqtxqd/

谢谢你的帮忙!

EN

回答 2

Stack Overflow用户

发布于 2015-10-07 17:40:16

从第一行可以看出,您需要某种控制文件来分隔各个变量。因此,通过在其他环境中使用PISA,我知道前三列对应于ISO 3字母的国家代码(例如,ALB)。下面是数字和字母,需要通过分隔它们来有意义地理解它们。您可以为此使用代码簿(https://pisa2012.acer.edu.au/downloads/M_stu_codebook.pdf),但这对于每个单独的变量都是一个真正的负担。为什么不在SPSS或sAS中下载并导入呢?这不是一个“圆滑”的解决方案,但如果没有控制文件,您将有很多手动工作要做。

票数 0
EN

Stack Overflow用户

发布于 2015-10-25 13:40:52

我只是用readr包读取了这些文件。那么您需要什么: readr包、TXT文件、SAScii包和相关的sas文件。

因此,假设您想要读取学生文件。然后,您需要以下文件: INT_STU12_DEC03.txt和INT_STU12_DEC03.sas。

代码语言:javascript
复制
##################### READING STUDENT DATA  ###################
## Loading the dictionary
dic_student = parse.SAScii(sas_ri = 'INT_STU12_SAS.sas')

## Creating the positions to read_fwf
student <- read_fwf(file = 'INT_STU12_DEC03.txt', col_positions = fwf_widths(dic_student$width), progress = T)
colnames(student) <- dic_student$varname

OBS 1:因为我使用的是Linux,所以我需要从sas文件中删除第一行,并将编码改为UTF-8。

OBS 2:删除的行是:

代码语言:javascript
复制
libname  M_DEC03 "C:\XXX"; 
filename STU "C:\XXX\INT_STU12_DEC03.txt"; 
options nofmterr;

OBS 3:数据集占用大约1 1Gb,因此您将需要足够的RAM。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/32591859

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档