问题标签 [recode]

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 投票
10 回答
728922 浏览

r - 根据条件 (`if`) 语句替换数据框中的值

在下面编码的 R 数据帧中,我想将B 出现的所有时间替换为b.

这提供了:

我最初的尝试是使用这样的forif语句:

但我相信你可以看到,这替换了junk$nmwith的所有值b。我可以看到为什么这样做,但我似乎无法让它仅替换原始值为 junk$nm 的那些情况B

注意:我设法解决了这个问题,gsub但为了学习 RI,我仍然想知道如何让我的原始方法发挥作用(如果可能的话)

0 投票
13 回答
2898 浏览

r - 多个类别的 ifelse 风格重新编码的成语

我经常遇到这个问题,以至于我认为必须有一个好的成语。假设我有一个带有一堆属性的 data.frame,包括“产品”。我还有一把将产品转化为品牌+尺寸的钥匙。产品代码 1-3 是 Tylenol,4-6 是 Advil,7-9 是 Bayer,10-12 是 Generic。

编码这个的最快(就人类时间而言)方法是什么?

ifelse如果有 3 个或更少的类别,我倾向于使用 nested ,如果超过 3 个,我会输入数据表并将其合并。有更好的想法吗?Stata 有一个非常适合这类事情的recode命令,尽管我认为它过度促进了数据代码混合。

0 投票
2 回答
4203 浏览

r - 将分类变量重新编码为二进制 (0/1)

有人可以帮助我使用ifelse.

我有一个data.frame(dat),其中有一个名为 Q1(dat$Q1)的分类变量/因子。dat$Q1被编码为 1、2、3 或 4。我需要data$new1根据以下规则创建一个新列:

如果dat$Q1 == 3那么dat$new1应该是1。否则,dat$new1应该是0

请问最有效的方法是什么?

0 投票
2 回答
221 浏览

r - 重新编码个人群体

我正在尝试重新编号人群。

在数据中,“FamID”表示一个家庭,“PtID”表示与该家庭相关的个体患者。“双胞胎”列表示患者是同卵双胞胎(编码为 1)、异卵双胞胎(编码为 2)还是非双胞胎(编码为 0)。

例如,“FamID”F1 有两个家庭成员,PtID F11 和 F12,他们是同卵双胞胎 (Twin = 1)。

我想创建一个具有基于 Twin 列和 FamID 列的编码的列 (NewCol)。

Twin 列中的第一组同卵双胞胎(编码为 1)在新列中将有 1,来自不同家庭的第二组同卵双胞胎将是 3,其中下一组同卵双胞胎将是下一个奇数号等。

对于异卵双胞胎(编码为 2s),它们的偶数会逐渐增加,第一个异卵双胞胎家族从 2 开始并上升。

任何非双胞胎(编码为 0),它们将保持为 0。

期望的输出:


数据

0 投票
1 回答
327 浏览

r - R:通过合并来自另一个数据集的值对变量进行部分重新编码

我什至不太确定如何问这个问题,所以请多多包涵。

我注意到我正在使用的数据集 ANES 累积文件中有一个错误。在数据集中的某一年(2004 年)中,一个变量(我将其重命名为“grewup”)的值被意外遗漏了,因此该年仅显示“NA”。其他年份的值在那里,所以数据集基本上看起来像这样:

我确实有另一个仅包含 2004 年的数据集,并且缺少“grewup”的值。我想做的是使用第二个数据集中的值重新编码 2004 年的 NA。我该怎么做?同样,这些值在其余年份的累积数据集中;我只想为 2004 年重新编码,而不要理会其余的值。

谢谢。

一些澄清和补充:

  • 我只想从第二个数据集中引入这个变量,以避免使第一个数据集比现在(951 列)更加庞大和消耗内存。实际上,我已经拥有了许多其他变量

  • 此外,虽然 2004 年的所有值都是 NA,但并非数据集中的每个 NA 都是 2004 年的。其他年份的一些值是合法的缺失值。

0 投票
1 回答
927 浏览

sas - SAS从多个变量创建一个新变量

我很尴尬地问这个问题,因为它看起来很简单,但我无法弄清楚。

我正在尝试基于多个 if-then 语句创建一个新变量。例如:

我认为我可能会用每条语句覆盖 newvar ?这是怎么回事?

0 投票
1 回答
1539 浏览

r - 有条件地重估 R 中的一个因子

这个答案可能很明显(我希望如此),但我一直只找到复杂的解决方案。我想做的是根据另一个因素的水平有条件地重新评估一个因素。

这是使用 mtcars 数据集的示例:

现在在那些齿轮级别为“5”的汽车中,我如何将新的“齿轮”级别“6”分配给那些“am”级别为“1”的汽车,同时保留因子级别“3”, 4","5" 代表“齿轮”?这是一个更简单的示例,但考虑到我的数据集的复杂性,我更愿意将向量保留为因子(例如,而不是转换为数字并返回)。

0 投票
3 回答
22131 浏览

r - 在 R 中重新编码数值

我想将一些数值重新编码为不同的数值,并尝试使用以下代码:

survey$KY27PHYc <- revalue(survey$KY27PHY1, c(5=3, 4=2,3=2,2=1,1=1))

我收到以下错误:

我哪里错了?

0 投票
1 回答
176 浏览

r - 在 R 中重新编码任意分组变量或因子

假设我有一个任意长度的向量或列,它代表一些分组/因子变量,具有任意数量的组和任意值,如下所示:

我如何最容易地将其变成这样:

0 投票
0 回答
45 浏览

r - 基于多个“或”条件重新编码分类变量

我想根据某些字符串的存在与否重新编码一个名为“booktitle”的变量。如果该字段为空白或包含特定的“否定”词,我想将我的新变量编码为“否”。如果不存在任何否定词,我想将我的新变量编码为“是”。

我尝试了以下方法:

并收到一条错误消息:

$<-.data.frame( *tmp*, "myDF", value = logical(0))中的错误:替换有 0 行,数据有 411。

我也试过用'|' 而不是逗号来表示“或”。