【发布时间】:2021-03-03 21:37:18
【问题描述】:
我有一个名为“职业”的数据框列,其值为 1、2、3、5、6、7、8、9。我需要构建一个新的数据框列,例如职业 2。如果旧列中的值属于以下元素之一:2、3、6、7,则新列中的行将取值 1。否则,行将取 0。在我的真实数据中,“职业”列可以取大约 90 个不同的值。此外,我需要使用大约 10 个不同的值将 1 分配给新列。所以我不想创建大约 10 个不同的条件来分配新值。
我所做的是创建一个包含值的列表,基于该值我可以对新列进行二分法,例如 value_list = c(2, 3, 6, 7)。我也尽量避免使用 for 循环来完成任务。伪代码如下所示:
df$occupation2 <- 0
value_list = c(2, 3, 6, 7)
df['occupation2'] <- 1 where occupation2's value isin value_list.
【问题讨论】: