Stata 导入以逗号作为小数分隔符的数字的csv
我有一个5 gbStata 导入以逗号作为小数分隔符的数字的csv,stata,decimal-point,Stata,Decimal Point,我有一个5 gbcsv文件,导入到stata需要一个多小时 原因是,除其他外,它是欧洲格式的,即它是一个分隔的文件和数字列带有,作为十进制分隔符。例如: V1 V2 V3 A 2,4 10,1 B 30 1,4 问题是stata假设数值列是字符串变量,因此,尝试以一种非常低效的方式导入它(尝试将列声明为数值只会给我缺少的值) 是否有一个命令/选项,我可以在其中输入不同的小数点分隔符,以加快导入过程?如果您的数据文件如下所示: A; 2,4; 10,1 B; 30; 1,
csv
文件,导入到stata需要一个多小时
原因是,除其他外,它是欧洲格式的,即它是一个代码>分隔的文件和数字列带有,
作为十进制分隔符。例如:
V1 V2 V3
A 2,4 10,1
B 30 1,4
问题是stata
假设数值列是字符串变量,因此,尝试以一种非常低效的方式导入它(尝试将列声明为数值只会给我缺少的值)
是否有一个命令/选项,我可以在其中输入不同的小数点分隔符,以加快导入过程?如果您的数据文件如下所示:
A; 2,4; 10,1
B; 30; 1,4
A; 2,4; 10,1
B; 30; 1,4
您可以执行以下操作:
import delimited whatever_filename.txt, delimiters(";") varnames(nonames)
destring v2 v3, dpcomma replace
list
+-----------------+
| v1 v2 v3 |
|-----------------|
1. | A 2.4 10.1 |
2. | B 30 1.4 |
+-----------------+
import delimited "D:\data.csv", varnames(nonames) parselocale(es_ES)
从Stata版本15开始,没有一种方法可以一步完成。我认为唯一的其他解决方案是通过将逗号更改为句点来预处理数据文件。Excel可以轻松做到这一点 如果您的数据文件如下所示:
A; 2,4; 10,1
B; 30; 1,4
A; 2,4; 10,1
B; 30; 1,4
您可以执行以下操作:
import delimited whatever_filename.txt, delimiters(";") varnames(nonames)
destring v2 v3, dpcomma replace
list
+-----------------+
| v1 v2 v3 |
|-----------------|
1. | A 2.4 10.1 |
2. | B 30 1.4 |
+-----------------+
import delimited "D:\data.csv", varnames(nonames) parselocale(es_ES)
从Stata版本15开始,没有一种方法可以一步完成。我认为唯一的其他解决方案是通过将逗号更改为句点来预处理数据文件。Excel可以轻松做到这一点 我认为您正在寻找的功能已添加到Stata 16中。命令import delimited
有新的选项parselocale()
,groupseparator()
,和decimalseparator()
请参见以下10/c
中的新内容15至16:
help whatsnew15to16
import delimited是从中导入数据的现有命令
分隔的文本文件。它得到了加强
a。它更快。一般来说,速度快10%,是原来的2到4倍
在某些情况下速度更快
b。它可以更好地检测分隔符。除了逗号和制表符之外,它
现在检测管道、冒号和分号
c。新选项允许基于区域设置进行数字解析。选择
是parselocale()、groupseparator()和decimalseparator()
d。将报告导入文件中不匹配的引号,以便
我能修好它们
有关数据:
您可以执行以下操作:
import delimited whatever_filename.txt, delimiters(";") varnames(nonames)
destring v2 v3, dpcomma replace
list
+-----------------+
| v1 v2 v3 |
|-----------------|
1. | A 2.4 10.1 |
2. | B 30 1.4 |
+-----------------+
import delimited "D:\data.csv", varnames(nonames) parselocale(es_ES)
或
我认为您正在寻找的功能已添加到Stata 16中。命令import delimited
有新的选项parselocale()
,groupseparator()
,和decimalseparator()
请参见以下10/c
中的新内容15至16:
help whatsnew15to16
import delimited是从中导入数据的现有命令
分隔的文本文件。它得到了加强
a。它更快。一般来说,速度快10%,是原来的2到4倍
在某些情况下速度更快
b。它可以更好地检测分隔符。除了逗号和制表符之外,它
现在检测管道、冒号和分号
c。新选项允许基于区域设置进行数字解析。选择
是parselocale()、groupseparator()和decimalseparator()
d。将报告导入文件中不匹配的引号,以便
我能修好它们
有关数据:
您可以执行以下操作:
import delimited whatever_filename.txt, delimiters(";") varnames(nonames)
destring v2 v3, dpcomma replace
list
+-----------------+
| v1 v2 v3 |
|-----------------|
1. | A 2.4 10.1 |
2. | B 30 1.4 |
+-----------------+
import delimited "D:\data.csv", varnames(nonames) parselocale(es_ES)
或
是的,这是主要问题,一步到位。我的问题在于您的第一行,它将V2和V3作为字符串导入,这使得导入方式效率低下。如果您能想出更好的解决方案,您可以吹毛求疵地寻找解决方案!是的,这是主要问题,一步到位。我的问题在于您的第一行,它将V2和V3作为字符串导入,这使得导入方式效率低下。如果您能想出更好的解决方案,您可以吹毛求疵地寻找解决方案!你找到一种一步完成的方法了吗?没有,我试着给开发团队发电子邮件,但是要求任何东西都是一个非常官僚的过程。到目前为止,我的结论是,对于现有版本,如果不更改源代码以导入excel文件,就不可能做到这一点。您是否找到了一种一步完成此操作的方法?不,我已尝试向Stata
开发团队发送电子邮件,但提出任何要求都是一个非常官僚的过程。到目前为止,我的结论是,对于现有版本,如果不更改源代码以导入excel文件,就不可能做到这一点。谢谢,但奇怪的是,stata花了那么长时间才进行了如此简单和必要的更改。谢谢,但奇怪的是,stata花了那么长时间才进行了如此简单和必要的更改。