r - 如何在我的数据集中分别过滤男性和女性(使用 r)?
问题描述
我有一个 .csv 中的 excel 表加载到 r 中。我想按男性和女性过滤我的数据,但是当我尝试时我无法弄清楚。我的列标题是男性/女性和大小 (mm),因此我的数据列出了 M 或 F 和数字。
我试过说
Male <- Male/Female %>% filter(M);
Male <- Male/Female %>% filter(Male/Female <= M)
等等。我不确定我做错了什么。
解决方案
创建一个可重现的示例将帮助您更快地获得帮助。在这里,我将向您展示如何使用一些简单的数据来做到这一点。
创建假数据:
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")
推荐阅读
- mysql - 需要帮助更新 MySQL 中具有重复值的记录
- json - Gson 在转换为 json 时再次转义转义序列 - Android
- wordpress - 如何保存放置到 PluginDocumentSettingPanel 中的复选框的状态
- reactjs - 如何更新 React Redux 状态
- javascript - 从父级向子级发射对象
- angular - 如何以角度显示小时、分钟和秒格式的时间
- c# - 有没有办法在 SQL Server 查询中编写正则表达式?
- apache - 我应该如何成功重写 url 以在远程服务器上使用?
- file - 如何以编程方式确定文件是否位于 Linux 和/或 macOS 的网络文件系统(NFS 或 SMB)上?
- canvas - Xcode 11.4 和 Canvas 未使用 SwiftUI 显示