【问题标题】:Problems importing data in Stata using "file" and a local macro使用“文件”和本地宏在 Stata 中导入数据时出现问题
【发布时间】:2016-05-10 09:45:46
【问题描述】:

我正在尝试从多个日志文件中导入数据。以下是我的处理方式:

我将日志文件放在一个单独的目录中,并生成一个 txt 文件,其中包含该目录中的文件名列表。然后,我通读了那个 txt 文件,随后在循环中使用文件名和导入命令来导入数据。这个过程在我大约 6 个月前最后一次运行 do 文件时有效,现在它不工作了。

基本代码如下所示:

cd "filepath\logs\"
! dir cpuusage*.log /a-d /b /o:-d >"filepath\filelist.txt"

file open myfile using "filepath\filelist.txt",read
file read myfile line

import delimited using `line', delim(" ") varnames(nonames)

尽管 filelist.txt 有一个包含 14 个文件名的列表,但该导入命令的结果是 (0 vars, 0 obs)。

我是新手,所以我真的希望我忽略了一些简单而明显的事情。我仍然不明白为什么这种确切的方法在六个月前有效......有什么想法吗?

【问题讨论】:

  • 您在 filelist.txt 中的文件名是否嵌入了空格?如果是这样,那么您的导入分隔命令需要添加引号 "`line'"
  • 这意味着import 命令被接受为合法但认为它找到了一个空文件。如果没有看到您的文件,很难理解这一点。在您尝试使用import 之前尝试使用type 输入文件。

标签: import stata


【解决方案1】:

我认为您可以为此使用fs

cd "filepath\logs\"
fs cpuusage*.log
foreach f in `r(files)' {
    import delimited using `f', delim(" ") varnames(nonames)
}

如果不知道您的日志文件是什么样的,就很难提供更多帮助。我建议尝试使用菜单导入一个以获取正确的语法。

【讨论】:

  • fs来自SSC,必须由ssc install fs安装后才能使用。
猜你喜欢
  • 2010-10-09
  • 2016-01-06
  • 2022-01-24
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多