2.3 从SAS中导入数据
foreign包[R-core,2012]提供了函数read.ssd(),该函数可以将SAS中的数据集(.sas7bdat文件)导入R中。下面是成功导入数据所需要遵循的几个关键点:
你的计算机中必须成功安装了SAS,函数read.ssd()将调用SAS来读取SAS数据集,并将读取的数据集导入R中。
SAS数据集的文件名长度不能超过8个字符。否则,数据的导入将会失败。而从.CSV文件中导入数据集时没有该限制。
在数据导入的过程中,如果变量名超过8个字符将会被截断为8个字符的长度,这样将导致无法正确理解变量的含义。一种解决办法就是从.CSV文件中单独地导入变量名,这样可以保持完整的变量名。
一个只包含了变量名的空.CSV文件可以通过以下方式创建。
1)从dumData中创建一个空的SAS表dumVariables:
2)将表dumVariables导出到一个.CSV文件中。
下面是演示从SAS数据集导入数据的例子。假设在文件夹“Current working directory/data”中有一个名为“dumData.sas7bdat”的SAS数据文件和一个名为“dumVariables.csv”的.CSV文件。
注意,上面例子中的变量名已经被截断,完整的变量名使用下面的代码从一个.CSV文件导入。
尽管可以将SAS数据集先导入一个.CSV文件中再从.CSV文件导入R中,但是这种做法对于具有某种特定格式的数据存在一些问题,例如一个数值型变量的值为“$100 000”,这种情况下最好是从“.sas7bdat”文件导入,但是变量名可能需要使用上面的方式单独导入R中。
另一种从SAS数据集中导入数据的方法是使用函数read.xport()来读取一个SAS转换(XPORT)格式的文件。
时间: 2024-12-20 13:58:41