当前位置: 首页 > 知识库问答 >
问题:

dplyr根据现有列的值变异新列

滕渝
2023-03-14

我需要根据两个现有列的值添加一个新列。

我的数据集看起来像这样:

    V1   V2  V3
1   1    I
2   2    C
3   1    C
4   1    A
5   2    C
...

新列V3应遵循以下条件: '''

if (V1==2 & V2==C) {
V3 <- 1
} else { V3 <- 0
}

'''

但是,当我尝试创建列时,我收到以下错误:“”评估错误:比较(1)仅适用于原子类型和列表类型。

理想情况下,结果应该是这样的:

   V1  V2  V3
1   1   I   0
2   2   C   1
3   1   C   0
4   1   A   0
5   2   C   1
...

非常感谢!

共有1个答案

子车煌
2023-03-14

我不确定您的数据是tible还是数据。frame但您可以运行<code>str(data)

> data <- data.frame(V1 = c(1,2,1,1,2), V2 = c("I", "C","C","A","C"))

> data%>%mutate(
   V3 = ifelse(V1 %in% 2 & V2 %in% 'C', 1, 0)
 )

  V1 V2 V3
1  1  I  0
2  2  C  1
3  1  C  0
4  1  A  0
5  2  C  1
 类似资料:
  • 我正在尝试使用创建一个新列,该列的值基于特定的列。 最后一个数据帧示例(我正在尝试创建): 这个问题基本上与此相反:dplyr-mutate:使用动态变量名。我不能使解决方案适应我的问题。

  • 问题内容: 我有一个名为Vendor的表,在此表中有一个名为AccountTerms的列,该列仅显示一个值(即0、1、2、3),依此类推。我也有一个要使用()的列,以反映该值的含义,例如: 等等… 我需要的是一个脚本,它将查看AccountTerms中的值,然后将更新以显示上面显示的单词值。我该怎么做呢? 问题答案: 我将尝试以一种尽可能简单的方式来解释这一点,以便于理解: 假设您有一个这样的表设

  • 我的数据框就像这个 由reprex包(v2.0.1)于2022-02-17创建 我想在grouping_bycol1之后根据count_col1和count_col2选择具有最大值的行。 我希望我的数据看起来像这样 你可以写一篇专栏文章 但不是两个人

  • 问题内容: 我有这张叫 shop的 桌子: 我也有这张桌子叫做 item : 我主要想做的是:根据 项目* 表的 item_price 更新 shop 表的* item_price * 。 * 免责声明 询问此查询的目的是从item item_price表中填写我的商店item_price。但是将来的商店item_price的价值将与item_price的价值不同。 例如: 从商店购买的商品将使用

  • 我正在为一个大的数据集创建条件平均值,这个数据集包含了几年来一周内看到的流感病例数。数据是这样组织的: 我想做的是创建一个新的列,列出往年同一周的平均病例数。例如,对于Week所在的行。数字是1和流感。今年是2017年,我希望新行给出任何一年的平均计数。数字==1 但是,由于有四年的数据* 52周,因此需要大量迭代才能阐明条件。有没有办法在dplyr中优雅地编码它?我经常遇到的问题是,我想根据周.

  • 在一个有四列的大数据框(“myfile”)中,我必须添加第五列,其中的值有条件地基于前四列。 更喜欢使用和的答案,主要是因为它在大型数据集中的速度。 我的数据框如下所示: 第五列(V5)的值基于一些条件规则: 现在我想使用函数在所有行上使用这些规则(以避免慢循环)。类似这样的事情(是的,我知道这样不行!): 结果应该是: 如何在dplyr中执行此操作?