Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/r/70.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
R 基于向量索引而不是列名或索引筛选行_R_Dplyr - Fatal编程技术网

R 基于向量索引而不是列名或索引筛选行

R 基于向量索引而不是列名或索引筛选行,r,dplyr,R,Dplyr,我有一个非常简单的数据帧df_测试示例,如下所示: df_测试通过添加purr,您可以执行以下操作: map(.x = v, ~ df_test %>% filter(across(all_of(.x)) == 5)) [[1]] A 1 5 在其当前形式中,筛选操作将文本字符串“A”(即v[1]的内容)与数字5进行比较,数字5当然始终为false,因此无法返回任何有效行。相反,您需要将变量A(包含在df_test中)作为第一个参数传递给filter()。您可以使

我有一个非常简单的数据帧df_测试示例,如下所示:


df_测试通过添加
purr
,您可以执行以下操作:

map(.x = v,
    ~ df_test %>%
     filter(across(all_of(.x)) == 5))

[[1]]
  A
1 5

在其当前形式中,筛选操作将文本字符串“A”(即
v[1]
的内容)与数字5进行比较,数字5当然始终为false,因此无法返回任何有效行。相反,您需要将变量A(包含在df_test中)作为第一个参数传递给
filter()
。您可以使用
get()
这样做:

df_analysis <- df_test %>% 
  filter(get(v[1]) == 5)
df_分析%
过滤器(get(v[1])==5)

这里使用
purr
的另一个解决方案实际上要好得多,但我想指出为什么您的代码没有按预期工作。

我们可以使用
base R

df_test[df_test[[v]] == 5, , drop = FALSE]

或者使用
dplyr
,通过转换为
sym
bol并计算(
!!


或使用
.data

df_test %>%
      filter(.data[[v]] == 5)
df_test %>%
      filter(.data[[v]] == 5)