这个问题非常简单。我正在使用这个haven
包,它创建了一个自定义类haven_labelled
,在将数据从 Stata 导入 R 时调用(它的好处是在 R 中显示标签)。我想选择具有此自定义类(或任何其他自定义类)的列。
使用标准类,可以使用is.numeric
等is.factor
。
例如:df <- Filter(is.numeric, df)
。
可以在此处找到许多其他方法。
我试过用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
另一个类的补充)。因此,基于标签的选择只返回完整的数据集。