导入多个.dta文件,删除标记为fomat的文件,从R中所有导入的dta文件创建数据帧

导入多个.dta文件,删除标记为fomat的文件,从R中所有导入的dta文件创建数据帧,r,R,我正在尝试导入多个.dta文件,并从所有导入的dta文件创建数据帧。我尝试使用下面的代码,但没有成功。它适用于csv文件,但我没有stata来保存正试图导入并进入数据帧的100多个文件 library(tidyverse) library(haven) tbl1 <- list.files(pattern = "*.dta") %>% map_df(~read_dta(.)) 库(tidyverse) 图书馆(避风港) tbl1% 地图测向(~read\u

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

library(tidyverse)
library(haven)

tbl1 <-
list.files(pattern = "*.dta") %>%
map_df(~read_dta(.))

库(tidyverse)
图书馆(避风港)
tbl1%
地图测向(~read\u dta()
错误:由于精度损失,无法从“$a1”转换为“$a1”。
*地点:1、2、3、4、5、6、7、8、9、10、11、12、13、14、15、16、17、18、19、20、21、22。。。
值以“$a1”标记,但不以“$a1”标记。
idstd id首选项旋转a0 a1 a1a a2 a3a a3b
1 5902217 1 2 1[Manu~17 2[Amh~1[Add~1[Add~1[Yes]
2 590218 3 1[Manu~17 2[Amh~1[Add~1[Add~1[Yes]
3 590219 4 7 2 1[手动17 2[Amh 1[Add 1[Add 1[Yes]
4590220 6 6 2 1[Manu 17 2[Amh 1[Add 1[Add 1[Yes]
5 5902221 10 4 2[Reta~17 2[Amh~1[Add~1[Add~1[Yes]
6 5902222 12 12 3 1[手动17 2[Amh 1[添加1[添加1[是]

以下内容对我来说很有用,只需使用一些mock.dta,但如果不查看您的数据,就很难确定

一个建议是使用
read.dta13
,因为它处理较新版本(13+)的Stata

library(tidyverse)
library(readstata13)

df_list < lapply(list.files(pattern="*.dta"), read.dta13)
tbl1 <- do.call(rbind.data.frame, df_list)

库(tidyverse)
图书馆(readstata13)
df_listtbl1您好!感谢您的关注。我添加了其中一个数据集的一个片段。我运行了您建议的代码,但出现了以下错误:```r>df_list tbl1我认为问题在于stata中的变量是双标签的。有没有办法解决这个问题?我猜如果变量仅被标记为字符、因子、数字等,那么这将起作用c、 您好@DSan,我不确定变量是否被双重标记,但也许您可以分享您在尝试此操作时遇到的错误?在执行
rbind
或在
read.dta13
部分时它是否中断?是的,在我运行tbl1之后