haven::read_dta支持使用label属性将变量标签从 Stata 导入 R。Rstudio 还支持在视图窗格中显示这些标签。
但是,当使用dplyr::bind_rows(或rbind_all)绑定两个数据框时,不会保留标签。这是一个错误吗?
library(dplyr)
id <- 1:5
attr(id, "label") <- "unit id"
df1 <- tbl_df(data.frame(id)) # label is fine
df1$id
# [1] 1 2 3 4 5
# attr(,"label")
# [1] "unit id"
df2 <- tbl_df(data.frame(id)) # label is fine
df2$id
# [1] 1 2 3 4 5
# attr(,"label")
# [1] "unit id"
df_bound <- bind_rows(df1, df2) # label is gone
df_bound$id
# [1] 1 2 3 4 5 1 2 3 4 5
Run Code Online (Sandbox Code Playgroud)
解决方法是使用rbind而不是bind_rows. 然后,您必须确保列名称相同。
用于获取 中但不在 中setdiff(names(df1), names(df2))的列名,反之亦然。df1df2setdiff(names(df2), names(df1))
| 归档时间: |
|
| 查看次数: |
1378 次 |
| 最近记录: |