使用R/dplyr过滤列?

使用R/dplyr过滤列?,r,dplyr,R,Dplyr,我有一个简单的问题。。。我有一个数据集需要通过某些参数进行过滤。我希望在R中找到解决方案 虚拟案例: 色龄动物 红10狗 黄色5号猫 pink 6 cat您也可以通过以下方式进行操作: df$category <- with(df,!(colour %in% c('red', 'pink') & age < 7 & animal == 'cat')) + 1 df # colour age animal category #1 red 10 dog

我有一个简单的问题。。。我有一个数据集需要通过某些参数进行过滤。我希望在R中找到解决方案

虚拟案例:

色龄动物
红10狗
黄色5号猫

pink 6 cat
您也可以通过以下方式进行操作:

df$category <- with(df,!(colour %in% c('red', 'pink') & age < 7 & animal == 'cat')) + 1
df

#  colour age animal category
#1    red  10    dog        2
#2 yellow   5    cat        2
#3   pink   6    cat        1

您还可以将其操作为:

df$category <- with(df,!(colour %in% c('red', 'pink') & age < 7 & animal == 'cat')) + 1
df

#  colour age animal category
#1    red  10    dog        2
#2 yellow   5    cat        2
#3   pink   6    cat        1

我喜欢dplyr中的
case\u,它可以用mutate设置更复杂的选择

库(tidyverse)
色龄动物
#>1只红色10号狗
#>2黄5猫
#>3粉红6猫
#>4红色12仓鼠
#>5粉红10猫
色龄动物分类
#>1只红色10只狗2只
#>2黄色5第2类
#>3粉红色6第1类
#>4只红色12只仓鼠4只
#>5粉红色10第3类

由(v0.3.0)于2021年1月17日创建

我喜欢在dplyr中使用
函数设置更复杂的选择时使用case\u

库(tidyverse)
色龄动物
#>1只红色10号狗
#>2黄5猫
#>3粉红6猫
#>4红色12仓鼠
#>5粉红10猫
色龄动物分类
#>1只红色10只狗2只
#>2黄色5第2类
#>3粉红色6第1类
#>4只红色12只仓鼠4只
#>5粉红色10第3类

由(v0.3.0)于2021-01-17创建,您可以使用
mydata%>%mutate(category=ifelse((color='red'.\color='pink'))和agebeauty!谢谢!您可以使用
mydata%>%mutate(category=ifelse((color='red'.\color='pink'))&AgeBeauty!谢谢!这绝对是完美的,因为它将非常有助于更复杂的分类,这是我的最终目标。非常感谢!很抱歉再问一个问题,但我想知道如果你需要分类,是否可以使用mutate函数,例如:分类为类别1:如果存在以下两个nt:color=red或pink;Age您可以使用
sum
来计算条件值是否为真。因此,如果您希望所有年轻的、红色或粉色的仓鼠都有第五类,请插入:
(sum((color==“red”| color==“pink”)、Age<7、animal==“仓鼠”)>=2)~5
你真是个美人!非常感谢。它很有效!这绝对是完美的,因为它对更复杂的分类非常有帮助,这是我的最终目标。非常感谢!很抱歉再问一个问题,但我想知道如果你需要基于:分类为类别1:如果出现以下两种情况:color=red或pink;Age,您可以使用
sum
来计算条件值为true。因此,如果您希望所有年轻的红色或粉色仓鼠都有第五类,请插入:
(sum((color==“red”| color==“pink”),Age<7,animal==“仓鼠”)>=2)~5
你真是个美人!非常感谢你。它很管用!