问题标签 [r-haven]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
r - R: How to use haven with somewhat broken data
I have some German data that contains umlaut, most importantly it seems to have wrong encoding.
Loading with read.dta
If I try straight on
So I do instead
Loading with read_dta
Here's using the haven
package:
I don't understand the Error that I'm getting when using head()
. I get the same error when trying to convert it to a data table using
When I do this, I will first see the error, and R
will subsequently crash.
Test data:
The data file is contained in this zip file and is called LIAB_lm_9310_v1_pers.dta
.
r - R:从 github/version 安装包?
我之前haven
是从 CRAN 安装的,但后来haven
使用从 Github安装
并想检查我是否得到了正确的版本。sessionInfo()
说,除其他外:
但是,这也是 CRAN 的版本。我如何确定这是来自 Github 的当前版本?
r - R 使用 Haven 导入,使用 Stata 12 或 sab7bdat 源文件?
他们的所有数据都以以下格式提供:
- SAS (sab7bdat)
- SPSS
- 斯塔塔 (12)
我想使用Haven 包将数据集导入R,它支持上述所有格式(它利用ReadStat Library)。
执行此操作的首选格式是哪种?
进一步来说:
- 原始格式的可用数据是否存在差异?
- 某些格式是否比其他格式更接近 R 的格式,这会影响输出吗?
- 速度上有区别吗?(不太重要)
r - R包'haven'read_spss:如何让它忽略值标签?
我有一个 SPSS 文件。我在使用'haven'包中阅读了它:
我创建了一个提取长标签的函数(在 SPSS -“标签”中):
看起来像“避风港”中的一个小错误:
当我实际查看一个在 SPSS 中没有长标签但具有值标签的变量的属性时,我得到:
但是,当我将我的函数 longlabels 应用到我的数据框并要求它为每一列打印长标签时,对于同一列“WAVE”,我得到了 - 而不是 NULL:
当然,这是不正确的,因为它会抓取下一个属性(哪个?)并用它替换 NULL。
这个函数应该创建一个长标签的向量,通常它会这样做,例如:
但是,我刚刚得到一个包含 92 列的 SPSS 文件,并在其上运行了完全相同的功能。现在,我得到的不是向量,而是列表
此处对长标签结构的观察:那些在 SPSS 中没有长标签但确实有值(值标签)的列 - 对于它们,我的函数会抓取它们的值标签,因此现在我的长标签被记录为数字向量带有名称,例如:
问题:如何避免为没有长标签的列提取值标签?
r - 使用 Haven 导入 Stata 数据后访问变量标签的便捷方式
在 R 中,一些包(例如)向变量(例如haven
)插入label
属性haven
,这解释了变量的实质名称。例如,gdppc
可能有标签GDP per capita
.
这非常有用,尤其是在从 Stata 导入数据时。但是,我仍然很难知道如何在我的工作流程中使用它。
如何快速浏览变量和变量标签?现在我必须做
attributes(df$var)
,但这并不方便瞥见(a lanames(df)
)如何在绘图中使用这些标签?同样,我可以使用
attr(df$var, "label")
来访问字符串标签。不过,这似乎很麻烦。
是否有任何官方方法可以在工作流程中使用这些标签?我当然可以编写一个包含 的自定义函数attr
,但是将来当包以不同方式实现该label
属性时它可能会中断。因此,理想情况下,我想要haven
(或其他主要软件包)支持的官方方式。
r - dplyr bind_rows 不保留变量标签
haven::read_dta
label
支持使用属性将变量标签从 Stata 导入 R。Rstudio 还支持在视图窗格中显示这些标签。
dplyr::bind_rows
但是,当使用(或)绑定两个数据帧时rbind_all
,不会保留标签。这是一个错误吗?
r - 有效地将标记变量转换为因子
我正在努力寻找有效地将标记变量转化为因素的方法。我正在使用的数据集可从此处获得:[ https://www.dropbox.com/s/jhp780hd0ii3dnj/out.sav?dl=0][1]。这是一个spss数据文件,我喜欢使用它,因为我的同事使用它。
当我读入数据时,你可以看到文件中的每一个因素都变成了一个“标记”的类。
我遇到的第一个问题是 ggplot2 不知道如何将比例应用于标记类。
这可以通过将分类变量“收入”包装在 as_factor() 中很好地解决
但是,如果我在做探索性研究,我可能会用很多标签变量做很多图。这让我觉得有很多额外的打字。
当您收集大量变量来绘制多个交叉表时,这个问题被放大了,您会丢失值标签。
所以,现在所有被融化的变量的值标签都消失了。因此,我可以看到防止这种情况的唯一方法是单独使用 as_factor() 将每个标记的变量转换为以值标签作为因子级别的因子。但是,同样,这是很多打字。
我想我的问题是如何最有效地处理标记类,将它们转化为因素,特别是关于 ggplot2。
r - 识别 tbl_df 列类
我正在将 SAS 数据集读入 R。SAS 将缺少的字符值存储为空引号,但幸运的是,zap_empty()
将这些值转换为 NA。
我的数据集包含近 400 个变量,我不想单独检查每个变量。我想创建一个循环来识别变量是否为字符,然后应用zap_empty()
。
read_sas()
导入数据tbl_df
而不是data.frame
. 如果我将数据转换为data.frame
第一个,则以下循环有效。
我想了解如何使用布尔测试识别列类tbl_df
。下面提供了一个示例 SAS 数据集,使用read_sas()
from读取haven
。
当我使用它访问列时,$
它被识别为一个字符,但在使用索引时却不是。
使用循环,如何识别tbl_df
对象中的哪些列是字符变量?
从@Sumedh 我现在可以识别哪些列是字符。
这个错误是否意味着我不能zap_empty()
循环使用?
r - 使用包避风港将导入到r的SPSS数据子集?
我已经使用该包haven
将 SPSS 数据读入 R。一切似乎都很好,除了当我尝试对数据进行子集化时,它的行为似乎不正确。这是代码(我没有 SPSS 来创建示例数据并且不能发布真实的东西):
上面的df有“NA”分散在各处。我希望上面只对数据进行子集化,只保留带有“factor1”的变量 1 的行,并丢弃变量 2 中所有带有 NA 的行。第一个子集按预期工作。但第二个子集没有。它删除了行,但 NA 仍然存在。
我怀疑这个问题与haven
构建导入数据和使用类labelled
而不是实际因子变量的方式有关,但它在我的脑海中。任何人都知道会发生什么以及如何完成同样的事情?
这是df
,variable1
和的结构variable2
:
r - 想要避免 r 中的 for 循环并使用其中一个应用函数
应该使用哪个 apply 函数来避免下面代码中的 for 循环?变量标签现在是简单的占位符 - 目标是使用此过程在 R 中设置代码簿,以便轻松导出到 SPSS,在 SPSS 中打开代码簿时可以使用该代码簿。理想情况下,这将简化我在 R 中为自己的工作工作的能力,但与使用 SPSS 的同事兼容。