gpt4 book ai didi

class - 删除附加有foreign/Hmisc SPSS导入功能的变量标签

转载 作者:行者123 更新时间:2023-12-02 10:51:57 25 4
gpt4 key购买 nike

像往常一样,我得到了一些 SPSS 文件,并使用 Hmisc 包中的 spss.get 函数将其导入到 R 中。我对 Hmisc::spss.get 添加到 data.frame 中所有变量的 labelled 类感到困扰,因此想要删除它。

当我尝试运行 ggplot 甚至当我想做一些简单的分析时,

labelled 类让我头疼!一种解决方案是从 data.frame 中的每个变量中删除 labelled 类。我怎样才能做到这一点?这可能吗?如果没有,我还有其他选择吗?

我真的想在适用的情况下使用 as.data.frame(lapply(x, as.numeric))as.character 绕过“从头开始”重新编辑变量...而且我当然不想运行 SPSS 并手动删除标签(不喜欢 SPSS,也不关心安装它)!

谢谢!

最佳答案

这是我完全摆脱标签的方法。与 Jyotirmoy 的解决方案类似,但适用于向量和 data.frame。 (部分归功于弗兰克·哈雷尔)

clear.labels <- function(x) {
if(is.list(x)) {
for(i in 1 : length(x)) class(x[[i]]) <- setdiff(class(x[[i]]), 'labelled')
for(i in 1 : length(x)) attr(x[[i]],"label") <- NULL
}
else {
class(x) <- setdiff(class(x), "labelled")
attr(x, "label") <- NULL
}
return(x)
}

使用如下:

my.unlabelled.df <- clear.labels(my.labelled.df)

编辑

这是该函数的一个更简洁的版本,结果相同:

clear.labels <- function(x) {
if(is.list(x)) {
for(i in seq_along(x)) {
class(x[[i]]) <- setdiff(class(x[[i]]), 'labelled')
attr(x[[i]],"label") <- NULL
}
} else {
class(x) <- setdiff(class(x), "labelled")
attr(x, "label") <- NULL
}
return(x)
}

关于class - 删除附加有foreign/Hmisc SPSS导入功能的变量标签,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2394902/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com