首页 > 解决方案 > 如何在我的数据集中分别过滤男性和女性(使用 r)?

问题描述

我有一个 .csv 中的 excel 表加载到 r 中。我想按男性和女性过滤我的数据,但是当我尝试时我无法弄清楚。我的列标题是男性/女性和大小 (mm),因此我的数据列出了 M 或 F 和数字。

我试过说

Male <- Male/Female %>% filter(M);
Male <- Male/Female %>% filter(Male/Female <= M)

等等。我不确定我做错了什么。

我当前的错误消息的截图,以及我到目前为止的内容

我正在尝试使用和过滤的大部分数据表的屏幕截图

标签: rfilter

解决方案


创建一个可重现的示例将帮助您更快地获得帮助。在这里,我将向您展示如何使用一些简单的数据来做到这一点。

创建假数据:

library(tibble)
frogData <- tribble(
  ~`Male/Female`, ~`Size(mm)`, 
  "M", 88.1, 
  "M", 96.7,
  "F", 90.7,
  "F", 89.4
)

我可以在您的代码中看到几个问题。首先,在使用 dplyr 语法和管道时,您需要了解哪些对象要去哪里。在这种情况下可以理解为:

`new object` <- `existing object` %>% `function`. 

另一个问题是您的原始数据具有非标准变量名称,这些变量名称需要包含在反引号中才能在 R 中使用。为了使事情更简单,通常最好重命名这些变量。完成后,将数据过滤为仅包含男性记录就很简单了。注意使用==来测试相等语句,=用于分配值(如<-

library(dplyr)
# Rename variables
frogData <- frogData %>% 
  rename(sex = `Male/Female`, 
         size = `Size(mm)`)

# Create dataset with only males
Male <- frogData %>% 
  filter(sex == "M")

推荐阅读