将dta文件导入R:移除Stata格式属性attr(,"format.stata")
解决Stata导入R后列表元素的
format.stata属性无法移除的问题 你用zap_formats、zap_labels没用的核心原因是:这些函数默认针对向量类型(比如数据框普通列)设计,不会自动遍历列表里的每个元素去处理属性。
直接用以下代码就能彻底移除属性:
# 遍历列表每个元素,手动清除format.stata属性 df2$peer_id_spec <- lapply(df2$peer_id_spec, function(x) { attr(x, "format.stata") <- NULL x })
执行后再检查:
df2$peer_id_spec[[1]] # 输出只会显示 [1] 41,不会再附带format.stata属性
如果想从源头避免这类属性,下次导入Stata文件时,可以强制把所有列读成基础数据类型:
df2 <- read_dta("你的文件路径.dta", col_types = cols(.default = col_double()))
内容的提问来源于stack exchange,提问作者PaulaSpinola
相关产品推荐
相关产品推荐

