R与Stata的数据处理与变量选择全解析
1. 数据读取
1.1 读取定宽文本文件(单记录情况)
在处理定宽文本文件时,若每个案例只有一条记录,可借助 read.fwf
函数。此函数会调用 read.table
来完成工作,所以 read.table
的参数也能在此使用。例如,可利用 stringsAsFactors
参数避免R默认将字符串变量转换为因子。
为使程序更易编写和维护,可采用宏替换的方法。具体操作如下:
# 存储文件路径
myfile <- "mydataFWF.txt"
# 存储变量名
myVariableNames <- c("id", "gender", "q1", "q2", "q3", "q4")
# 存储变量宽度
myVariableWidths <- c(2, -1, 1, 1, 1, 1, 1)
# 读取数据
mydata <- read.fwf(
file = myfile,
width = myVariableWidths,
col.names = myVariableNames,
row.names = "id",
na.strings = "",
fill = TRUE,
strip.white = TRUE
)
这里可能会出现警告信息,提示文件最后一行不完整,但这通常不会影响数据读取。
以下是Stata和R读取单记录定宽文本文件的示例程序: