问题标签 [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.

0 投票
0 回答
643 浏览

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.

0 投票
1 回答
372 浏览

r - R:从 github/version 安装包?

我之前haven是从 CRAN 安装的,但后来haven使用从 Github安装

并想检查我是否得到了正确的版本。sessionInfo()说,除其他外:

但是,这也是 CRAN 的版本。我如何确定这是来自 Github 的当前版本?

0 投票
1 回答
147 浏览

r - R 使用 Haven 导入,使用 Stata 12 或 sab7bdat 源文件?

开普敦大学通过其DataFirst Portal提供数据。

他们的所有数据都以以下格式提供:

  1. SAS (sab7bdat)
  2. SPSS
  3. 斯塔塔 (12)

我想使用Haven 包将数据集导入R,它支持上述所有格式(它利用ReadStat Library)。

执行此操作的首选格式是哪种?

进一步来说:

  1. 原始格式的可用数据是否存在差异?
  2. 某些格式是否比其他格式更接近 R 的格式,这会影响输出吗?
  3. 速度上有区别吗?(不太重要)
0 投票
1 回答
834 浏览

r - R包'haven'read_spss:如何让它忽略值标签?

我有一个 SPSS 文件。我在使用'haven'包中阅读了它:

我创建了一个提取长标签的函数(在 SPSS -“标签”中):

看起来像“避风港”中的一个小错误:

当我实际查看一个在 SPSS 中没有长标签但具有值标签的变量的属性时,我得到:

但是,当我将我的函数 longlabels 应用到我的数据框并要求它为每一列打印长标签时,对于同一列“WAVE”,我得到了 - 而不是 NULL:

当然,这是不正确的,因为它会抓取下一个属性(哪个?)并用它替换 NULL。

这个函数应该创建一个长标签的向量,通常它会这样做,例如:

但是,我刚刚得到一个包含 92 列的 SPSS 文件,并在其上运行了完全相同的功能。现在,我得到的不是向量,而是列表

此处对长标签结构的观察:那些在 SPSS 中没有长标签但确实有值(值标签)的列 - 对于它们,我的函数会抓取它们的值标签,因此现在我的长标签被记录为数字向量带有名称,例如:

问题:如何避免为没有长标签的列提取值标签?

0 投票
6 回答
9214 浏览

r - 使用 Haven 导入 Stata 数据后访问变量标签的便捷方式

在 R 中,一些包(例如)向变量(例如haven)插入label属性haven,这解释了变量的实质名称。例如,gdppc可能有标签GDP per capita.

这非常有用,尤其是在从 Stata 导入数据时。但是,我仍然很难知道如何在我的工作流程中使用它。

  1. 如何快速浏览变量和变量标签?现在我必须做attributes(df$var),但这并不方便瞥见(a la names(df)

  2. 如何在绘图中使用这些标签?同样,我可以使用attr(df$var, "label")来访问字符串标签。不过,这似乎很麻烦。

是否有任何官方方法可以在工作流程中使用这些标签?我当然可以编写一个包含 的自定义函数attr,但是将来当包以不同方式实现该label属性时它可能会中断。因此,理想情况下,我想要haven(或其他主要软件包)支持的官方方式。

0 投票
4 回答
1554 浏览

r - dplyr bind_rows 不保留变量标签

haven::read_dtalabel支持使用属性将变量标签从 Stata 导入 R。Rstudio 还支持在视图窗格中显示这些标签。

dplyr::bind_rows但是,当使用(或)绑定两个数据帧时rbind_all,不会保留标签。这是一个错误吗?

0 投票
1 回答
2076 浏览

r - 有效地将标记变量转换为因子

我正在努力寻找有效地将标记变量转化为因素的方法。我正在使用的数据集可从此处获得:[ https://www.dropbox.com/s/jhp780hd0ii3dnj/out.sav?dl=0][1]。这是一个spss数据文件,我喜欢使用它,因为我的同事使用它。

当我读入数据时,你可以看到文件中的每一个因素都变成了一个“标记”的类。

我遇到的第一个问题是 ggplot2 不知道如何将比例应用于标记类。

这可以通过将分类变量“收入”包装在 as_factor() 中很好地解决

但是,如果我在做探索性研究,我可能会用很多标签变量做很多图。这让我觉得有很多额外的打字。

当您收集大量变量来绘制多个交叉表时,这个问题被放大了,您会丢失值标签。

所以,现在所有被融化的变量的值标签都消失了。因此,我可以看到防止这种情况的唯一方法是单独使用 as_factor() 将每个标记的变量转换为以值标签作为因子级别的因子。但是,同样,这是很多打字。

我想我的问题是如何最有效地处理标记类,将它们转化为因素,特别是关于 ggplot2。

0 投票
1 回答
927 浏览

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()循环使用?

0 投票
0 回答
185 浏览

r - 使用包避风港将导入到r的SPSS数据子集?

我已经使用该包haven将 SPSS 数据读入 R。一切似乎都很好,除了当我尝试对数据进行子集化时,它的行为似乎不正确。这是代码(我没有 SPSS 来创建示例数据并且不能发布真实的东西):

上面的df有“NA”分散在各处。我希望上面只对数据进行子集化,只保留带有“factor1”的变量 1 的行,并丢弃变量 2 中所有带有 NA 的行。第一个子集按预期工作。但第二个子集没有。它删除了行,但 NA 仍然存在。

我怀疑这个问题与haven构建导入数据和使用类labelled而不是实际因子变量的方式有关,但它在我的脑海中。任何人都知道会发生什么以及如何完成同样的事情?

这是df,variable1和的结构variable2

0 投票
3 回答
105 浏览

r - 想要避免 r 中的 for 循环并使用其中一个应用函数

应该使用哪个 apply 函数来避免下面代码中的 for 循环?变量标签现在是简单的占位符 - 目标是使用此过程在 R 中设置代码簿,以便轻松导出到 SPSS,在 SPSS 中打开代码簿时可以使用该代码簿。理想情况下,这将简化我在 R 中为自己的工作工作的能力,但与使用 SPSS 的同事兼容。