【发布时间】:2019-09-04 23:30:05
【问题描述】:
我有一个 .csv 格式的 excel 表加载到 r 中。我想按男性和女性过滤我的数据,但是当我尝试时我无法弄清楚。我的列标题是男性/女性和尺寸 (mm),因此我的数据列出了 M 或 F 和数字。
我试过说
Male <- Male/Female %>% filter(M);
Male <- Male/Female %>% filter(Male/Female <= M)
等等。我不确定我做错了什么。
Screenshot of what my current error messages look like, along with what I have so far
Screenshot of the majority of the data table that I'm trying to work with and filter
【问题讨论】:
-
请不要发布代码/数据/错误的图像:它不能被复制或搜索 (SEO),它会破坏屏幕阅读器,并且它可能不适合某些移动设备。参考:meta.stackoverflow.com/a/285557/3358272(和xkcd.com/2116)。请直接包含代码或数据(例如,
dput(head(x))或data.frame(...))。 -
Male/Female不是一个普通的变量名,通常不受欢迎;但是如果你坚持使用它,你必须在它周围使用反引号才能使用它。我不知道flter是什么,也许你的意思是filter?相等测试需要双等号==,而不是单等号=的赋值。使用dplyr时,需要在somewhere 中指定数据框(FrogData)。字符串的比较必须使用实际的字符串如"M",需要引号。也许filter(FrogData,Male/Female` == "M")`? -
我敦促您学习如何使用
dplyr,无论是通过您的课程(我在做一个假设)还是在线教程。我会从dplyr.tidyverse.org 开始,也许试试vignette("dplyr"),然后寻找其他基于tidyverse 的教程和howtos。 -
@r2evans:您的第二条评论指出了一个比任何适合 dplyr/magrittr 研究的问题都更为基本的问题。这个人不懂基本的 R 语法。需要学习有效对象名称的规则。我认为 dplyr 的作用是掩盖这种理解。过早引入的 NSE 使人们对 R 中的句法问题感到困惑。
-
我完全同意,@42-,感谢您指出这一点。通常我不知道如何恰当地说某人对 R 语法的掌握显然缺少一些关键概念。我已经阅读了许多关于/反对使用
dplyr(和朋友)作为进入 R 的门户的讨论,虽然我同意一些专业人士的观点,但我认为你关于 NSE 模糊事物的观点很突出(data.table也是)。