我正在尝试导入多个.dta文件,并从所有导入的dta文件创建数据帧。我尝试使用以下代码,但它不起作用。它适用于csv文件,但我没有stata来保存我试图导入的加100个文件并进入数据帧。
library(tidyverse)
library(haven)
tbl1 <-
list.files(pattern = "*.dta") %>%
map_df(~read_dta(.))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`.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]发布于 2021-04-12 23:16:39
下面的方法适用于我的一些模拟.dtas,但是如果不查看您的数据就很难确定。
一种建议是改用read.dta13,因为它处理Stata的更新版本(13+)。
library(tidyverse)
library(readstata13)
df_list < lapply(list.files(pattern="*.dta"), read.dta13)
tbl1 <- do.call(rbind.data.frame, df_list)https://stackoverflow.com/questions/67025959
复制相似问题