Stata odbc 获取列注释作为标签

Posted

技术标签:

【中文标题】Stata odbc 获取列注释作为标签【英文标题】:Stata odbc get column comment as label 【发布时间】:2021-11-04 12:21:16 【问题描述】:

我正在尝试将 impala sql 中的数据访问到 Stata:

clear all
#delimit;
odbc load, exec("
SELECT column_name
data_base_name.table_name
")
dsn("<my dsn>")
user("")
password("");
#delimit cr

查询工作正常,但标签为空。有没有办法让这些进入stata?

我通过以下方式创建了 cmets:

ALTER TABLE  data_base_name.table_name
CHANGE column_name column_name string comment 'test comment';

因此,当我导入 Stata 时,变量名称 column_name 应该带有“测试注释”标签。这可能吗?或任何其他方式(我的意思是评论除外)?

【问题讨论】:

【参考方案1】:

help odbc 没有提到任何关于 cmets 的内容,odbc describe 没有返回列 cmets 并且手册中也没有提到访问 cmets,所以似乎没有一个直接的方法。这是一个解决方法,使用来自 SSC 的 moremata

odbc load, exec("DESCRIBE data_base_name.table_name") dsn("my dsn") clear
list

// Get variable names and comment labels
* ssc install moremata
mata: st_local("vars", invtokens(st_sdata(., ("name"))'))
mata: st_local("labels", mm_invtokens(st_sdata(., ("comment"))'))
local n_vars = _N

// Get actual data and label the variables
odbc load, exec("SELECT * FROM data_base_name.table_name") dsn("my dsn") clear
forval i = 1/`n_vars' 
    cap confirm variable `:word `i' of `vars''
    if !_rc label var `:word `i' of `vars'' "`:word `i' of `labels''"

【讨论】:

以上是关于Stata odbc 获取列注释作为标签的主要内容,如果未能解决你的问题,请参考以下文章

写为Stata文件时,R中应用的标签不保存

Python pandas / matplotlib在条形图列上方注释标签[重复]

stata怎么做时间序列

Python爬虫库BeautifulSoup获取对象(标签)名,属性,内容,注释

从 pd.DataFrame [重复] 获取列标签索引的有效方法

使用提交 SHA 查询带注释的标签