问题标签 [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 投票
1 回答
1996 浏览

r - SAS无法打开使用“haven”从R导出的文件

使用 导出 R 中haven::write_sas()的数据时,SAS EG/9.4 无法识别(即无法加载)生成的 sas7bdat 文件。尽管还有其他几个包foreign提供了替代方法,但我希望找到一种相对自动化的方法将数据集从我的 R 会话直接推送到 SAS。

使用haven时,文件已生成,但 SAS EG 或 9.4 无法打开:

在此处输入图像描述


用作foreign替代haven

运行 SAS 代码输出foreign是成功的。


但是,这些方法都不能帮助将数据直接从 R 自动推送到 SAS library中,这将是可取的。

0 投票
0 回答
112 浏览

r - tbl_df 数据框的标签

我有一个“tbl_df”类的对象,来自导入的 spss 文件(包避风港)。

我使用 R-Markdown 文件。当我访问我的数据框的某个变量时data$question10,它在控制台中显示值向量(全部为 1 和 0),但最后一行显示“标签:”实际上并未列出任何标签。但是在 R-Markdown 输出中,我得到了零和一的数量的摘要。

R Markdown 中的输出

它还在那里显示标签。如何在变量中访问这些标签?

0 投票
1 回答
143 浏览

r - read_sas cols_only 抑制错误评估错误:必须命名第 2 列

我有一长串非常大的 SAS 文件。我想使用 read_sas 导入它们。为了提高速度并减少内存使用量,我只想使用 cols_only 导入我感兴趣的列。

问题是,我有一长串可能的列名 - 但并非每一列都在我的数据集中。如果我将完整列表传递给 cols_only,则会收到错误消息:

有没有办法抑制这个错误,并鼓励 read_sas 尽最大努力从我通过的列表中导入任何变量?

0 投票
1 回答
76 浏览

r - R Have:从导入的 SPSS 文件访问列标签

我在 SPSS 中有一个数据集,我正在使用“haven”库将其读入 R

我正在尝试从数据框中提取标签,并且可以在基础 R 中执行此操作:

但不是以带有选择变量的 dplyr 样式方式:

我知道这两个不起作用的示例返回小标题,而第一个返回标记为双精度。我如何使它们等效?

0 投票
1 回答
333 浏览

r - 使用 Have::labelled 动态创建值标签

我正在使用 Haven::labelled 来设置变量的值标签。目标是创建一个完整记录的数据集,我可以导出到 SPSS。

现在,假设我有一个 dfvalue_labels值及其值标签。我也有df_data我想要分配值标签的变量的 df。

手动,我会像这样创建值标签df_data$var

但由于我有超过 16 个数据集和近 7 000 列,我需要一种更动态的方式来分配值标签。请注意,据我了解,"values1" = 1values1 = 1(引号)之间存在差异,具体取决于变量类。

请注意,我使用haven::labelled它是唯一的方法,到目前为止,我已经能够成功导出带有值标签的 .sav 文件。我试过sjlabelled了,但没有运气。

0 投票
1 回答
83 浏览

r - 使用have::labelled动态创建价值标签,跟进

使用 Have ::labelled 动态创建值标签的后续问题,其中akrun使用deframe.

我正在使用 Haven::labelled 来设置变量的值标签。目标是创建一个完整记录的数据集,我可以导出到 SPSS。

现在,假设我有一个 dfvalue_labels值及其值标签。我还有一个 df df_data,其中包含我想要分配值标签的变量。

df_data$var1手动,我会像这样创建价值标签df_data$var2

我需要一种更动态的方式来为大型数据集中的正确变量分配正确的值标签。该解决方案还需要忽略character向量,因为我不希望这些具有值标签。因此,var3invalue_labels被列为NA

该解决方案不需要处理列表中的多个数据集。

0 投票
3 回答
582 浏览

r - 如何用spss文件中的data.frames中的标签替换值?

我必须阅读我使用包的 sav 文件haven

在控制台中,我可以看到标签:

在此处输入图像描述

在 html 表中,我只有值:

在此处输入图像描述

如何用spss文件中的data.frames中的标签替换值?用于在html表中显示?

使用 sjlabelled 包,我可以获得任何列的标签:

1] “阿利坎特” “巴塞罗那” “毕尔巴鄂” “加的斯”
[5] “菲格拉” “直布罗陀” “拉科鲁尼亚” “桑坦德”
[9] “塞维利亚” “圣卢卡” “维戈” “西班牙,未指定港口”
[ 13] “拉各斯” “里斯本” “波尔图” “Ilho do Fayal”
[17] “塞图巴尔” “葡萄牙,未指定港口” “英国,未指定港口” “巴茅斯”
[21] “比德福德” “伯肯黑德” “布里斯托尔” “布里克瑟姆”
[25] “Broadstairs” “Cawsand” “Chepstow” “Chester”
[29] “Colchester” “Cowes” “Dartmouth” “Deptford”
[33] “Dover” “Exeter” “Folkstone” “Frodsham”
[37] “Gainsborough ” “格林威治” “根西岛” “哈里奇”
[41] “赫尔” “伊尔弗勒科姆” “伊普斯威奇” “马恩岛”
[45] “怀特岛” “泽西岛” “肯德尔” “金斯林恩”

我试过 :

在单个列上:

Erreur:列portdep的长度必须为 36002(行数)或 1,而不是 847

在所有数据框上:

第一列有同样的错误:

列 xxx 的长度必须为 36002(行数)或 1,而不是 2

0 投票
1 回答
675 浏览

r - 处理使用 Haven 导入的标记变量的最佳方法是什么?

我有大约 15 个 SPSS 选举研究文件保存为 .sav 文件。我和我的小组将为每项研究重新编码大约 10 个变量,以运行一些逻辑回归。

我曾经haven()导入所有文件,所以看起来所有变量都属于haven_labelled()该类。

我一直对如何处理这类变量有点困惑,但是我观察到随着 Haven() 和 labelled() 包的更新,性能得到了很多改进,所以我倾向于继续使用它而不是使用,例如rioforeign

但我想在我们开始这项工作之前了解最佳实践应该是什么,这样我们就不会后悔。

每个研究文件有大约 200 个变量,混合了因子和数值变量。但首先,我想知道我应该如何重新编码性别变量,以便最终得到一个变量male,其中 1 是男性,0 不是。

我想问的一件事是car::Recode()重新编码变量的方法,而不是dplyr::recode变量方式。我个人觉得dplyr::recode()语法很笨拙,帮助文档也很差。我也不确定设置缺失值的最佳方法。

具体来说,我想我有三个具体问题。

问题 1:是否有令人信服的理由使用dplyr::recode而不是car::Recode?我自己的答案是car::Recode()看起来足够且易于使用。

问题 2:我应该强调将变量转换为因子或数字,还是可以,将变量保留为带有更新值标签的 Have_labelled?我担心 Haven 文档中关于以下内容的引用:''这个类提供了一些方法,因为我希望你会在导入后不久labelled_class强制使用标准 R 类(例如 a )''factor()

然而,也许haven_labelled该类已经改进并且与标记类有很大不同,因此不再需要强制转换为其他标准 R 类。

labelled问题3:使用(例如na_range()na_values())而不是使用car::Recode()方法设置缺失值有什么好处吗?

我的倾向是使用这些方法有明显的缺点labelled,我应该坚持使用这种car::Recode()方法。

谢谢你 。

0 投票
1 回答
996 浏览

r - 避风港包的困难在R中读取SPSS数据

我正在尝试使用 Haven 包读取 spss 数据并收到以下错误:

df_parse_sav_file(spec, encoding, user_na, cols_skip, n_max, 中的错误: 无法解析 ~FilePath/Dataset: 文件的时间戳字符串无效。

我试图更新包并重新启动我的 R 会话,但仍然遇到困难。

0 投票
1 回答
283 浏览

r - 提取haven_labelled向量的标签作为字符串向量

我有一个haven_labelled向量,我想从中提取其标签作为字符串向量:

attr(vec, "labels")不做我想要的,因为它返回一个命名向量:

期望的输出:

我访问了很多文档,但无法找到解决方案,因此非常欢迎您的帮助!