我正在尝试在省略号 !
之前使用 ...
逻辑运算符创建一个函数。
下面是一个简单的例子:
library(tidyverse)
myfun <- function(data, ...) {
filter(data, !(...))
}
该函数不起作用并抛出以下错误:
> myfun(iris, Sepal.Width < 4)
Error: Problem with `filter()` input `..1`.
x object 'Sepal.Width' not found
ℹ Input `..1` is `!(...)`.
我怎样才能让它发挥作用?
请注意,为了我的目的,我必须否定 myfun
内的条件。
答案 0 :(得分:4)
这是 [12-Jan-2021 20:59:17 UTC] PHP Warning: PHP Startup: Unable to load dynamic library 'pdo_sqlsrv' (tried: C:\php\ext\pdo_sqlsrv (Impossível localizar o módulo especificado), C:\php\ext\php_pdo_sqlsrv.dll (Impossível localizar o módulo especificado)) in Unknown on line 0
方法:
rlang
答案 1 :(得分:2)
更好的选择可能是像往常一样简单地过滤,然后从原始数据集中删除过滤后的行 - 例如使用 class CourseEpisodeSection extends Model {
protected $fillable = [
'id',
'course_episode_id',
'order',
'type',
'content'
];
protected $hidden = [
'deleted_at',
'updated_at',
'deleted_at'
];
public function courseEpisode()
{
return $this->belongsTo(CourseEpisode::class);
}
如下:
anti_join()
答案 2 :(得分:0)
尝试执行以下操作。
library(tidyverse)
library(data.table)
myfun <- function(data, param, argument) {
filter(data, data[[param]] != argument)
}
iris1 = as.data.table(iris)
myfun(iris, param = "Species", argument = "setosa")