【问题标题】:Stata: import delimited with duplicate variablesStata:导入以重复变量分隔
【发布时间】:2014-03-07 22:53:24
【问题描述】:

我有一个包含两个相同列的 csv 文件:

X,X
0,0
1,1
2,2

我想将它导入 Stata 13,但它不喜欢导入第二个 X(因为名称相同):

. import delimited "filename.csv"
X already defined
Error creating variables
r(109);

有没有简单的方法强制导入?

我不想指定要导入的行。实际数据集有 100 多个变量,重复变量分布在各处。 同样,我不想手动重命名变量。 如果 Stata 想要删除或重命名第二个 X,我很好。

作为背景,这个 csv 文件是由一些草率的 SQL 代码生成的。重复的变量正是我用于连接的变量。我可以清理 SQL 代码或预清理(使用例如 Python),但我希望让 Stata 强制导入。

【问题讨论】:

  • 你不能在Excel中打开数据文件并更改变量名吗?
  • 这个特殊的 csv 有超过一百万行,我相信不会在 Excel 中加载。但是——总的来说——我宁愿不这样做……即使是在可能的情况下。

标签: stata


【解决方案1】:

试试insheet

使用 .csv 文件中的示例数据:

x,x,y,y
238965,586,127,192864
238965,586,127,192864
1074,198264,5186,2947
1074,198264,5186,2947

导入所有变量,Stata 中的结果名称为:

x
v2
y
v4

命令是:

insheet using "~/some/file.csv"

(我在 Stata 12.1 上,根据 Stata 13 [U] 手册,insheetimport delimited 取代,第 21 页。)

【讨论】:

  • 行得通!而且你也是对的...... Stata 13 不再支持 insheet,但它仍然有效。谢谢!
  • 不客气。被取代的命令可以正常工作,因此旧程序在与新版本的 Stata 一起使用时不会中断。
  • 请务必阅读这两个命令(已取代的和新的),以便了解使用每一个命令的得失。
【解决方案2】:

import delimited 在 07oct2013 更新中针对此特定问题进行了修补。要更新 Stata 13 类型...

. update all

在 Stata 命令窗口中。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2021-05-15
    • 2014-07-03
    • 2023-03-19
    • 2021-05-15
    • 1970-01-01
    • 1970-01-01
    • 2018-08-24
    相关资源
    最近更新 更多