【发布时间】:2023-12-09 19:47:01
【问题描述】:
我有想要导入 Stata 的大型 .dat 文件。 .dat 文件是两个长列,每次观察多行。我想从不同的行中制作变量。问题是我不能使用 lrecl(#) 因为观察的行数不同,并且有一个字符串确定一个观察何时结束而另一个观察何时开始。这是 .dat 文件的样子(我用 // 分隔行):
PATN// WKU D03321703// SRC 7// APN 5583950// 专利号// WKU D03321711// SRC 7// APN 5455359// APT 4// 艺术 294// APD 19900627// 专利号// WKU D03321912// SRC 7// APN 5455432// APT 4// 艺术 294// APD 19900456
每个观察都以“PATN”开头。我想告诉 infile 使用后续列创建变量,例如 WKU、SRC、APN 和 APT(如:infix str WKU 5-13 SRC 5 APN 5-11 APT 5),然后找到下一个“PATN”开始下一次观察。所以我不仅需要它来找到字符串“PATN”,我还需要它能够离开“.”。当该观察不存在 APN 时。
【问题讨论】:
-
你对数据的描述让我有点困惑。原始数据实际上是什么样的?它是否有 // 在其中,或者这些记录实际上在不同的行上?
标签: text stata infix-notation file-io