DTA (.dta)
背景
-
- MIME 类型:application/x-stata-dta
- Stata 数据库传输格式.
- 旧版数据交换格式.
- 将数值数据集存储为可移植格式.
- 二进制格式.
- 最初由 StataCorp 于 1985 年开发.
Import 与 Export
- Import["file.dta"] 导入一个 DTA 文件,将所有数据集返回为一个表格形式.
- DTA 数据在 Wolfram 语言中由实数或者字符串、布尔值 True 和 False、以及 DateObject 规范表示.
- Import["file.dta",elem] 从 DTA 文件导入特定的参数.
- Import["file.dta",{elem,suba,subb,…}]导入一个子参数.
- 导入格式可以由 Import["file","DTA"] 或 Import["file",{"DTA",elem,…}] 指定.
- Export["file.dta",expr] 从 expr 创建 DTA 文件.
- 支持的 expr 表达式包括:
-
{v1,v2,…} 单列数据 {{v11,v12,…},{v21,v22,…},…} 数据行列表 array 任何数组包括 SparseArray、QuantityArray 等 tseries TimeSeries、EventSeries或TemporalData对象 Dataset[…] 数据集 Tabular[…] 表格对象 <|"name1"expr1,…|> 具名列的关联 - Import 和 Export 支持以下数据类型:
-
"Date" 日期和时间规范 "Integer8" 8 位整数 "Integer16" 16 位整数 "Integer32" 32 位整数 "Real32" IEEE 单精度数 "Real64" IEEE 双精度数 "String" ASCII 字符串 - 请到以下参考页面了解完整的基本信息:
-
Import, Export 从文件导入或导出到文件 CloudImport, CloudExport 从云对象导入或导出到云对象 ImportString, ExportString 从字符串导入或导出到字符串 ImportByteArray, ExportByteArray 从字节数组导入或导出到字节数组
参数
- Import 的通用参数:
-
"Elements" 该文件可用的参数和选项列表 "Summary" 文件摘要 "Rules" 所有可用参数的规则列表 - 数据表示参数:
-
"Data" 二维数组 "Dataset" 作为 Dataset 的表格数据 "EventSeries" 作为 EventSeries 的表格数据 "LabeledData" 标签和数据的关联 "LabeledRawData" 标签与原始数据的关联 "Tabular" 作为 Tabular 对象的表格数据 "TimeSeries" 作为 TimeSeries 的表格数据 - 默认情况下,Import 使用"Data"参数.
- 数据描述符参数:
-
"ColumnDescriptions" 列的描述和类型 "ColumnLabels" 列的名称 "ColumnTypes" 列名与类型的关联 "MissingPositions" 每列中被视为缺失的元素的位置 "MissingValues" 每列被认为缺失的值 - 元信息参数:
-
"ByteOrdering" 数据的字节序 "CharacterEncoding" 文件的字符编码 "Comments" 文件中的注释 "Compression" 文件中使用的压缩类型 "CreationDate" 以 DateObject 形式给出的文档创建日期 "Dimensions" 数据维度 "MetaInformation" 以字符串和日期对象形式给出的元数据 "MissingValues" 每列被认为缺失的值 "ModificationDate" 以 DateObject 形式给出的文档修改日期 "TableName" 整个表格的名称 "Version" 该文件的 SAS 规范版本
选项
- Import 的选项:
-
"ColumnDefaultValues" Automatic 列的名称和默认值的关联 "TimeColumn" Automatic 用来在 "EventSeries" 和 "TimeSeries" 元素中表示时间的列 "TypeDefaultValues" Automatic 类型和默认值的关联 - Export 的选项:
-
"ColumnDescriptions" Automatic 每列的描述列表 "MetaInformation" Automatic 元数据标签和值的关联 - "ColumnDescriptions" 的可用设定包括:
-
{"label1", "label2", …} 给出列名的字符串列表 {assoc,…} 提供列元数据的关联列表 <|colassoc|> 索引或列名与列元数据的关联 - assoc 可用的键包括:
-
"Name" 给出列名称的字符串 "Description" 给出列描述的字符串 "Type" 给出列类型的字符串 - "MetaInformation" 可用的键包括:
-
"Comments" 给出文件一般注释的字符串 "CreationDate" 日期对象给出文件的创建日期 "ModificationDate" 日期对象给出文件的修改日期 "TableName" 给出整个表名称的字符串 "Version" 给出文件版本的整数
范例
打开所有单元 关闭所有单元基本范例 (3)
Import["ExampleData/sample.dta"]Import["ExampleData/sample.dta", "Summary"]file = Export["test.dta", {{"String1", DateObject[{2000, 1, 1}, "Day"], Missing["NotAvailable"], 8.25}, {"String2", DateObject[{2000, 1, 2}, "Day"], 0.41, 1.44}, {"String3", DateObject[{2000, 1, 3}, "Day"], Missing["NotAvailable"], Missing["Tagged", "A"]}}]Import[file, "Tabular"]范围 (9)
导入 (3)
Import["ExampleData/sample.dta", "Elements"]Import["ExampleData/sample.dta", "Data"]导入为 Tabular 对象:
Import["ExampleData/sample.dta", "Tabular"]导出 (6)
导出 Dataset:
dataset = Dataset[{
<|"a" -> 1, "b" -> DateObject[{2000, 1, 1}, "Day"]|>,
<|"a" -> 2, "b" -> DateObject[{2000, 1, 2}, "Day"]|>,
<|"a" -> 3, "b" -> DateObject[{2000, 1, 3}, "Day"]|>}]file = Export["test.dta", dataset];Import[file, "Dataset"]file = Export["test.dta", {{1, 2, 3}, {4, 5, 6}}]Import[file, "Dataset"]file = Export["test.dta", <|"a" -> {1, 2, 3}, "b" -> {4, 5, 6}|>]Import[file, "Dataset"]导出一个 TimeSeries:
t = {1, 2, 5, 10, 12, 15};
v = {2, 1, 6, 5, 7, 4};ts = TimeSeries[v, {t}]file = Export["test.dta", ts]Import[file, "Data"]file = Export["test.dta", {{1., 2.}, {Missing["Tagged", "A"], 4.}}]Import[file, "Dataset"]file = Export["test.dta", {a, {d, e, f}}]Import[file, "Dataset"]导入的参数 (18)
数据表示 (7)
"Data" (1)
"Dataset" (1)
"EventSeries" (1)
将 Tabular 对象导出为 DTA 文件:
file = Export["test.dta", Tabular[Association["RawSchema" -> Association["ColumnProperties" ->
Association["Date" -> Association["ElementType" -> TypeSpecifier["Date"]["Integer32", "Day",
"Gregorian", 0]], "Value" -> Association["ElementType" -> "Real32"]],
"KeyColumns" -> None, "Backend" -> "WolframKernel"], "Options" -> {},
"BackendData" -> Association["ColumnData" -> DataStructure["ColumnTable",
{{TabularColumn[Association["Data" -> {5, {{NumericArray[{13150, 13151, 13152, 13153, 13156},
"Integer32"], {}, None}}, None}, "ElementType" -> "Date"["Integer32", "Day",
"Gregorian", 0]]], TabularColumn[Association["Data" ->
{NumericArray[{11.819999694824219, 12.039999961853027, 12.09000015258789,
11.880000114440918, 12.430000305175781}, "Real32"], {}, None},
"ElementType" -> "Real32"]]}}]]]]];将 DTA 文件导入为 EventSeries:
Import[file, "EventSeries"]"LabeledData" (1)
"LabeledRawData" (1)
"Tabular" (1)
"TimeSeries" (1)
将 Tabular 对象导出为 DTA 文件:
file = Export["test.dta", Tabular[Association["RawSchema" -> Association["ColumnProperties" ->
Association["Date" -> Association["ElementType" -> TypeSpecifier["Date"]["Integer32", "Day",
"Gregorian", 0]], "Value" -> Association["ElementType" -> "Real32"]],
"KeyColumns" -> None, "Backend" -> "WolframKernel"], "Options" -> {},
"BackendData" -> Association["ColumnData" -> DataStructure["ColumnTable",
{{TabularColumn[Association["Data" -> {5, {{NumericArray[{13150, 13151, 13152, 13153, 13156},
"Integer32"], {}, None}}, None}, "ElementType" -> "Date"["Integer32", "Day",
"Gregorian", 0]]], TabularColumn[Association["Data" ->
{NumericArray[{11.819999694824219, 12.039999961853027, 12.09000015258789,
11.880000114440918, 12.430000305175781}, "Real32"], {}, None},
"ElementType" -> "Real32"]]}}]]]]];将 DTA 文件导入为 TimeSeries:
Import[file, "TimeSeries"]数据描述符 (4)
"LabelDescriptions" (1)
"ColumnLabels" (1)
"ColumnTypes" (1)
元数据 (7)
"ByteOrdering" (1)
"Comments" (1)
"MetaInformation" (1)
"ModificationDate" (1)
导入的选项 (3)
"ColumnDefaultValues" (1)
Normal[Lookup[Import["ExampleData/sample.dta", "LabeledRawData"], "Missing"]]//Function[...]用 "ColumnDefaultValues" 为特定列指定其他默认值:
Normal[Lookup[Import["ExampleData/sample.dta", "LabeledRawData", "ColumnDefaultValues" -> <|"Missing" -> -1.|>], "Missing"]]//Function[...]"TimeColumn" (1)
将 Tabular 对象导出为 DTA 文件:
file = Export["test.dta", Tabular[Association["RawSchema" -> Association["ColumnProperties" ->
Association["Date" -> Association["ElementType" -> TypeSpecifier["Date"]["Integer32", "Day",
"Gregorian", 0]], "Value" -> Association["ElementType" -> "Real32"]],
"KeyColumns" -> None, "Backend" -> "WolframKernel"], "Options" -> {},
"BackendData" -> Association["ColumnData" -> DataStructure["ColumnTable",
{{TabularColumn[Association["Data" -> {5, {{NumericArray[{13150, 13151, 13152, 13153, 13156},
"Integer32"], {}, None}}, None}, "ElementType" -> "Date"["Integer32", "Day",
"Gregorian", 0]]], TabularColumn[Association["Data" ->
{NumericArray[{11.819999694824219, 12.039999961853027, 12.09000015258789,
11.880000114440918, 12.430000305175781}, "Real32"], {}, None},
"ElementType" -> "Real32"]]}}]]]]];默认情况下,对于 "TimeSeries" 和 "EventSeries" 元素,会自动选择时间列:
Import[file, "TimeSeries"]Import[file, "TimeSeries", "TimeColumn" -> "Value"]"TypeDefaultValues" (1)
Normal[Lookup[Import["ExampleData/sample.dta", "LabeledRawData"], "Missing"]]//Function[...]用 "TypeDefaultValues" 为特定类型指定其他默认值:
Normal[Lookup[Import["ExampleData/sample.dta", "LabeledRawData", "TypeDefaultValues" -> <|"Real64" -> -1.|>], "Missing"]]//Function[...]导出的选项 (2)
"ColumnDescriptions" (1)
Export["test.dta", {{1, 2., "3"}, {4, 5., "6"}}]Import["test.dta", "ColumnDescriptions"]用 "ColumnDescriptions" 指定列的类型和描述:
Export["test.dta", {{1, 2., "3"}, {4, 5., "6"}}, "ColumnDescriptions" -> {<|"Type" -> "String", "Description" -> "String data."|>}]Import["test.dta", "ColumnDescriptions"]历史
2021年引入 (12.3) | 在以下年份被更新:2021 (13.0) ▪ 2025 (14.2) ▪ 2026 (15.0)