当我需要加载必须将某些特定列读取为字符串的数据集时,我输入:
import delimited "data.csv", stringcols(13 15 16)
其中13、15和16是我想读取为字符串的数据集中的列数。但是,我通常不事先知道这些列的编号,因此能够使用这些列的名称执行相同的操作会很好。
我试过了:
import delimited "data.csv", stringcols(var1 var2 var3)
但stringcols
不接受非数字参数。有没有一种方法可以使用列名而不是数字来指定列类型?
在python中,我可以使用:
df=pd.read_csv("data.csv", dtype={k:str for k in ["var1", 'var2', 'var3']})
我正在Stata寻找类似的方法。
我实际上经常遇到这个问题。正如尼克所说,当前版本import delimited
不支持变量名。
一种解决方法是通过指定stringcols(_all)
选项将所有列导入为字符串,然后手动转换感兴趣的那些变量。
例如,
import delimited data.csv, stringcols(_all) clear
destring var4 var5 var6, replace
如果您有很长的变量列表,并且想要destring
除say以外的所有变量var1 var2 var3
,则可以使用ds
命令(感谢Nick的建议):
import delimited data.csv, stringcols(_all) clear
ds var1 var2 var3, not //specify a list of variables to be excluded
destring `r(varlist)', replace
如果您使用大量非结构化Excel文件,则可能会发现excelclean命令很有用。
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句