【发布时间】:2015-05-08 19:23:57
【问题描述】:
通常使用 dplyr/tidyr,我可以通过否定实现排除
... %>% gather(x, -y)
但是,目前,我希望以编程方式指定一些变量并且作为排除项,所以理想情况下
... %>% gather_(xVar, -yVar)
其中 xVar 和 yVar 是字符变量(例如,具有值 'x' 和 'y')。
字符串版本的函数是不允许排除的,还是有办法做到这一点?
-yVar 和 paste0('-', yVar) 这两个明显的罪魁祸首似乎都会产生错误。
【问题讨论】:
-
我觉得这个
matches很好用,见?select底部的例子。我很惊讶你使用gather()作为你的例子,它在tidyr,而不是dplyr。 -
修改为 tidyr/dplyr
-
也许您也可以将其编辑为有效的
gather调用,并带有示例数据?在data之后,接下来的两个gather参数是key和value...我不认为“不是y 列”是value的一个好参数。 (或者使用不同的函数,我在考虑gather()中的负列的用例时遇到了麻烦......带有内置数据的示例会很清楚)。 -
我不是 dplyr/tidyr 用户,但我要提醒您,数字否定运算符在与“[”的两个参数版本一起使用时对字符向量无效。您需要将逻辑否定运算符
!与该函数一起使用。你没有提供一个测试用例来解释迄今为止对这个问题缺乏关注。也许如果你编辑它以获得一个完整的例子,它可能会得到更多的关注。