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

r - 带有 SPSS 的 R 包 Haven 中的变量标签

我正在尝试从带有 Have 包的 SPSS por 文件中访问变量标签(这是变量的描述)。我可以用外国包裹做得很好,但我想用避风港。有什么建议么?

0 投票
1 回答
50 浏览

r - 有条件地编辑值标签的有效方法

我正在处理包含值标签的调查数据。Haven 包允许导入具有值标签属性的数据。有时这些价值标签需要以常规方式进行编辑。

我在这里给出的示例非常简单,但我正在寻找一种可以应用于大型 data.frames 中的类似问题的解决方案。

如果值标签以“[DON'T READ]”开头,我想从标签的开头删除“[DON'T READ]”并在末尾添加“(VOL)”。因此,“[DON'T READ] Both 同样”现在将变为“Both equal (VOL)”。

当然,使用 Haven 的相关标签包中的函数编辑这个单独的变量很简单。但我想将此解决方案应用于 data.frame 中的所有变量。

如何以可以应用于 data.frame 中的每个变量的方式直接实现上面函数的结果?

无论 具体值如何,该解决方案都必须有效。(在这种情况下,需要更改的是值 3,8 和 9,但不一定是这种情况)。

0 投票
0 回答
1402 浏览

r - 错误:dyn.load(file, DLLpath = DLLpath, ...) 中的“haven”的包或命名空间加载失败:

我无法打开安装“避风港”软件包。它给了我以下错误:

我也尝试删除并重新安装它,但没有成功。

0 投票
0 回答
719 浏览

r - R:如何读取所有列作为字符的 SAS 数据集

我正在使用 R 整理提供给我的数据(在 SAS 文件中),以便我可以将其批量插入 SQLserver 数据库。我遇到的问题是,有时数字字段在我读取它们后会被 R 转换。(前导 0 被删除,一些数字字段转换为科学记数法,长 ID 数字在第 15 位后变成乱码)。

将所有数据作为字符读入 R 可以解决这些问题。当我提供一个 csv 文件时,我可以使用 data.tables 'fread'函数来指定 colClasses = 'character' 但是据我所知,对于 Haven 包中的 'read_sas'函数不存在类似的东西。

是否有任何变通方法或额外的文档说明如何更好地处理和解决此问题?


编辑以突出显示问题(左值是数字,我想避免,右值是字符和我想要的):

1.

postcode <- c(0629,'0629') postcode [1] "629" "0629"

2.

id <- c(12000000,'12000000') id [1] "1.2e+07" "12000000"

3.

options(scipen=999) id <- c(123123123123123123123123,'123123123123123123123123') id [1] "123123123123123117883392" "123123123123123123123123"

如何直接从 SAS 导入数据,以便将数据框中的所有列作为字符数据类型读入(以避免插入 SQLserver 时出现数据质量问题)

0 投票
1 回答
893 浏览

r - 如何应用 R 列属性(来自 SAS 格式,通过 rio 的导入),例如 haven 中的 as_factor?

我已使用 rio 将 SAS 数据导入 R:

这给出了我的 r,它具有列 r$Race(存储原子值 1、2、3 和 4),它的属性似乎存储了我的 Race 格式(0="All", 1="White", . .., 8="未知", ...)。我想使用属性将 r$Race 转换为一个因子。我想为许多列执行此操作。

如果我使用了 Haven,我可以这样做:

但是 as_factor 因 r 失败(使用 rio 创建的对象)。

我希望只使用 rio,出于其他原因,我们更喜欢使用 rio。我正在尝试为我的卫生部门的其他编码人员创建简单的示例。我想尽量减少他们需要学习和加载的包的数量,这样我们就可以集中学习。

如果这有帮助: as_factor(r$Race)返回:

UseMethod(“as_factor”)中的错误:没有适用于“as_factor”的方法应用于类“c('double','numeric')”的对象

str(r$Race)返回:

atomic [1:7776] 1 2 3 4 1 2 3 4 1 2 ... - attr( , "label")= chr "Race (1=W,2=B,3=NatAm/AKNat,4=Asian/ PacIs)" - attr( , "format.sas")= chr "POPEST199XRACE" - attr( , "labels")= Named num [1:10] 0 1 2 3 4 0 1 2 3 4 ..- attr( , "names")= chr [1:10] "Total" "White" "Black" "American Indian or Alaska Native" ...

str(h$Race)返回:

“标记”类原子 [1:7776] 1 2 3 4 1 2 3 4 1 2 ... ..- attr( , "label")= chr "Race (1=W,2=B,3=NatAm/ AKNat,4=Asian/PacIs)" ..-attr( , "format.sas")= chr "POPEST199XRACE" ..- attr( , "labels")= Named num [1:10] 0 1 2 3 4 0 1 2 3 4 .. ..- attr( , "names")= chr [1:10] "Total" "White" "Black" "American Indian or Alaska Native" ...

在运行 import(...) 之后,运行:

在运行 read_sas(...) 之后,运行:

我没有找到在线 .sas7bcat 文件。我可以发布 SAS 代码来创建它和数据文件。

0 投票
2 回答
1994 浏览

r - Have::read_sav 显示值标签而不是代码

我正在使用haven.sav文件导入R. 我想知道如何显示值标签而不是数字代码。在以下示例中,我想显示物种名称而不是数字 1、2、3。

0 投票
1 回答
2147 浏览

r - 破解在 Have::read_sav() 的文件路径中包含特殊字符

在文件路径中包含任何类型的特殊字符(包括文件名)时,have (1.1.1) 包似乎存在问题。

假设这是一个真正的问题,我正在寻找某种巧妙的黑客/解决方案来解决它。

一个(不理想的)示例是让 R 将文件的副本复制到更友好的路径中,并给它一个“更好”的文件名,然后使用 Haven 加载。如:

我在用着:

0 投票
1 回答
674 浏览

r - 将单独文件中的 Stata 值标签读入 R

我有一个包含一个变量 RGA 的 Stata 数据集(.dta 文件)(这是一个 MWE,我实际上有很多变量)。该变量采用 3 个因子值:1、2 和 3。这些因子指的是有意义的事物(所谓的“值标签”),并且因子与其值标签之间的关联位于单独的 .txt 类似 Stata 的文件中,完全转载在这里:

我通过包将我的 .dta 文件加载到 R 中haven。我想在 R 中轻松访问 RGA 的值标签,特别是能够快速将 RGA 的值与其值标签匹配以产生可读的输出。如何以可以将其与数据集匹配的方式将这个单独的 .txt 文件读入 R?

0 投票
1 回答
417 浏览

r - 通过包have R读取sas元数据文件时出错

我正在使用 Haven 库从 sas7bdat 文件中读取 SAS 文件元数据。以下是我使用的代码

在此之后我收到以下错误:

“df_parse_sas_file 中的错误(spec_data,spec_cat,编码 = 编码,目录编码 = 目录编码,:”

请指导我如何解决这个问题。当我在 sas 查看器中查看时,这两个文件都指向相同的位置,因为单个文件包含数据和元数据。

0 投票
1 回答
403 浏览

r - 如何在 R 中读取 .sas7bvew 文件?

我正在寻找一个可以在R中读取.sas7bvew的包。我在尝试避风港,但它只能读取.sas7bdat

我尝试了以下方法:(假设lib2包含data.sas7bvew文件,我试图将其保存在lib1

在上述步骤之后,我可以看到data.sas7bdat正在lib1创建。而且我可以使用R轻松读取.sas7bdat文件。有什么方法可以直接在R中读取.sas7bvew文件。