【发布时间】:2019-05-16 10:21:41
【问题描述】:
这个问题很简单。我正在使用haven 包,它在将数据从Stata 导入R 时创建了一个名为haven_labelled 的自定义类(它的好处是在R 中显示标签)。我想选择具有此自定义类(或任何其他自定义类)的列。
对于标准类,可以使用is.numeric、is.factor 等。
例如:df <- Filter(is.numeric, df)。
可以在here找到许多其他方法。
我已尝试将这些示例替换为 class=="haven_labelled"。
例如:df <- Filter(class=="haven_labelled", df),
但这不起作用。它给出了错误:
Error in class == "haven_labelled" :
comparison (1) is possible only for atomic and list types
有什么想法吗?
编辑:
在尝试 H 1 的解决方案时,我发现了两件对于使用 Haven 包的其他人来说可能很重要的事情。
- 类名实际上必须是“labelled”而不是“haven_labelled”。
- 选择不起作用,因为have为每个变量创建了双重类(除了另一个类之外,它们都是
labelled)。因此,基于标签的选择只会返回完整的数据集。
【问题讨论】:
标签: r class select filtering r-haven