首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >导入多个.dta文件,删除避风港标签fomat,从R中所有导入的dta文件创建数据帧

导入多个.dta文件,删除避风港标签fomat,从R中所有导入的dta文件创建数据帧
EN

Stack Overflow用户
提问于 2021-04-10 01:45:15
回答 1查看 69关注 0票数 0

我正在尝试导入多个.dta文件,并从所有导入的dta文件创建数据帧。我尝试使用以下代码,但它不起作用。它适用于csv文件,但我没有stata来保存我试图导入的加100个文件并进入数据帧。

代码语言:javascript
复制
library(tidyverse)
library(haven)

tbl1 <-
list.files(pattern = "*.dta") %>%
map_df(~read_dta(.))
代码语言:javascript
复制
Error: Can't convert from `$a1` <labelled<double>> to `$a1` <labelled<double>> due to loss of precision.
* Locations: 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, ...
Values are labelled in `$a1` but not in `$a1`.
代码语言:javascript
复制
idstd    id preference rotation       a0     a1     a1a      a2     a3a     a3b
   <dbl> <dbl>      <dbl>    <dbl> <dbl+lb> <dbl+> <dbl+l> <dbl+l> <dbl+l> <dbl+l>
1 590217     1          2        1 1 [Manu~     17 2 [Amh~ 1 [Add~ 1 [Add~ 1 [Yes]
2 590218     3          1        1 1 [Manu~     17 2 [Amh~ 1 [Add~ 1 [Add~ 1 [Yes]
3 590219     4          7        2 1 [Manu~     17 2 [Amh~ 1 [Add~ 1 [Add~ 1 [Yes]
4 590220     6          6        2 1 [Manu~     17 2 [Amh~ 1 [Add~ 1 [Add~ 1 [Yes]
5 590221    10          4        2 2 [Reta~     17 2 [Amh~ 1 [Add~ 1 [Add~ 1 [Yes]
6 590222    12         12        3 1 [Manu~     17 2 [Amh~ 1 [Add~ 1 [Add~ 1 [Yes]
EN

回答 1

Stack Overflow用户

发布于 2021-04-12 23:16:39

下面的方法适用于我的一些模拟.dtas,但是如果不查看您的数据就很难确定。

一种建议是改用read.dta13,因为它处理Stata的更新版本(13+)。

代码语言:javascript
复制
library(tidyverse)
library(readstata13)

df_list < lapply(list.files(pattern="*.dta"), read.dta13)
tbl1 <- do.call(rbind.data.frame, df_list)
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/67025959

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档