首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用validate_dta_label write_dta时出现的“错误(标签)”

使用validate_dta_label write_dta时出现的“错误(标签)”
EN

Stack Overflow用户
提问于 2022-09-21 10:35:49
回答 1查看 53关注 0票数 0

我对软件包天堂的write_dta函数有问题。

我的代码是这样的:

代码语言:javascript
复制
lab_attr <- label$lab 


attr(data, "label") <- lab_attr
attributes(data)

write_dta(data,"donnees/test_haven_1_data.dta", label = attr(data, "label"))

这给了我以下错误:

代码语言:javascript
复制
Error in validate_dta_label(label) : length(label) == 1 is not TRUE

我所有的标签都在80个字符以下。

有谁知道怎么解决这个问题吗?

谢谢!

祝您今天愉快,

卡桑德拉

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2022-09-21 11:09:52

将Stata变量标签存储为数据帧属性的方法是分配给每个列的属性,而不是数据帧的属性。

例如,使用iris数据:

代码语言:javascript
复制
data  <- iris

names(data)
# "Sepal.Length" "Sepal.Width"  "Petal.Length" "Petal.Width"  "Species"

如果您只想编辑一个标签,您可以:

代码语言:javascript
复制
attr(data$Sepal.Length, "label")  <- "new label"

如果要创建标签来解释循环中的变量,则可以:

代码语言:javascript
复制
# Set labels which replace each . in the column name with a space
for(col in names(data)) {
    attr(data[[col]], "label")  <- gsub("\\.", " ", col)
}
# Print attributes
sapply(data, attr, "label")

#   Sepal.Length    Sepal.Width   Petal.Length    Petal.Width        Species 
# "Sepal Length"  "Sepal Width" "Petal Length"  "Petal Width"      "Species" 

完成此操作后,不需要在label中设置write_dta()参数。它会自动将label属性写入Stata标签。所以,在你的情况下,你可以做:

代码语言:javascript
复制
write_dta(data,"donnees/test_haven_1_data.dta")
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/73799309

复制
相关文章

相似问题

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