问题标签 [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.
r - 根据条件 (`if`) 语句替换数据框中的值
在下面编码的 R 数据帧中,我想将B
出现的所有时间替换为b
.
这提供了:
我最初的尝试是使用这样的for
和if
语句:
但我相信你可以看到,这替换了junk$nm
with的所有值b
。我可以看到为什么这样做,但我似乎无法让它仅替换原始值为 junk$nm 的那些情况B
。
注意:我设法解决了这个问题,gsub
但为了学习 RI,我仍然想知道如何让我的原始方法发挥作用(如果可能的话)
r - 多个类别的 ifelse 风格重新编码的成语
我经常遇到这个问题,以至于我认为必须有一个好的成语。假设我有一个带有一堆属性的 data.frame,包括“产品”。我还有一把将产品转化为品牌+尺寸的钥匙。产品代码 1-3 是 Tylenol,4-6 是 Advil,7-9 是 Bayer,10-12 是 Generic。
编码这个的最快(就人类时间而言)方法是什么?
ifelse
如果有 3 个或更少的类别,我倾向于使用 nested ,如果超过 3 个,我会输入数据表并将其合并。有更好的想法吗?Stata 有一个非常适合这类事情的recode
命令,尽管我认为它过度促进了数据代码混合。
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
。
请问最有效的方法是什么?
r - 重新编码个人群体
我正在尝试重新编号人群。
在数据中,“FamID”表示一个家庭,“PtID”表示与该家庭相关的个体患者。“双胞胎”列表示患者是同卵双胞胎(编码为 1)、异卵双胞胎(编码为 2)还是非双胞胎(编码为 0)。
例如,“FamID”F1 有两个家庭成员,PtID F11 和 F12,他们是同卵双胞胎 (Twin = 1)。
我想创建一个具有基于 Twin 列和 FamID 列的编码的列 (NewCol)。
Twin 列中的第一组同卵双胞胎(编码为 1)在新列中将有 1,来自不同家庭的第二组同卵双胞胎将是 3,其中下一组同卵双胞胎将是下一个奇数号等。
对于异卵双胞胎(编码为 2s),它们的偶数会逐渐增加,第一个异卵双胞胎家族从 2 开始并上升。
任何非双胞胎(编码为 0),它们将保持为 0。
期望的输出:
数据
r - R:通过合并来自另一个数据集的值对变量进行部分重新编码
我什至不太确定如何问这个问题,所以请多多包涵。
我注意到我正在使用的数据集 ANES 累积文件中有一个错误。在数据集中的某一年(2004 年)中,一个变量(我将其重命名为“grewup”)的值被意外遗漏了,因此该年仅显示“NA”。其他年份的值在那里,所以数据集基本上看起来像这样:
我确实有另一个仅包含 2004 年的数据集,并且缺少“grewup”的值。我想做的是使用第二个数据集中的值重新编码 2004 年的 NA。我该怎么做?同样,这些值在其余年份的累积数据集中;我只想为 2004 年重新编码,而不要理会其余的值。
谢谢。
一些澄清和补充:
我只想从第二个数据集中引入这个变量,以避免使第一个数据集比现在(951 列)更加庞大和消耗内存。实际上,我已经拥有了许多其他变量
此外,虽然 2004 年的所有值都是 NA,但并非数据集中的每个 NA 都是 2004 年的。其他年份的一些值是合法的缺失值。
sas - SAS从多个变量创建一个新变量
我很尴尬地问这个问题,因为它看起来很简单,但我无法弄清楚。
我正在尝试基于多个 if-then 语句创建一个新变量。例如:
我认为我可能会用每条语句覆盖 newvar ?这是怎么回事?
r - 有条件地重估 R 中的一个因子
这个答案可能很明显(我希望如此),但我一直只找到复杂的解决方案。我想做的是根据另一个因素的水平有条件地重新评估一个因素。
这是使用 mtcars 数据集的示例:
现在在那些齿轮级别为“5”的汽车中,我如何将新的“齿轮”级别“6”分配给那些“am”级别为“1”的汽车,同时保留因子级别“3”, 4","5" 代表“齿轮”?这是一个更简单的示例,但考虑到我的数据集的复杂性,我更愿意将向量保留为因子(例如,而不是转换为数字并返回)。
r - 在 R 中重新编码数值
我想将一些数值重新编码为不同的数值,并尝试使用以下代码:
survey$KY27PHYc <- revalue(survey$KY27PHY1, c(5=3, 4=2,3=2,2=1,1=1))
我收到以下错误:
我哪里错了?
r - 在 R 中重新编码任意分组变量或因子
假设我有一个任意长度的向量或列,它代表一些分组/因子变量,具有任意数量的组和任意值,如下所示:
我如何最容易地将其变成这样:
r - 基于多个“或”条件重新编码分类变量
我想根据某些字符串的存在与否重新编码一个名为“booktitle”的变量。如果该字段为空白或包含特定的“否定”词,我想将我的新变量编码为“否”。如果不存在任何否定词,我想将我的新变量编码为“是”。
我尝试了以下方法:
并收到一条错误消息:
$<-.data.frame
(*tmp*
, "myDF", value = logical(0))中的错误:替换有 0 行,数据有 411。
我也试过用'|' 而不是逗号来表示“或”。