R 根据行中的值从列中选择行

R 根据行中的值从列中选择行,r,dplyr,R,Dplyr,我有一个df如下:其中有两列,学生姓名和分数 Stud_name Marks Jon 25 john 20 ajay 50 ram 27 jay 61 jess 46 troy 23 mike 42 steve 45 glenn 43 我要几个名字和他们的标记 预期产出: Stud_name Marks john 20 ajay

我有一个df如下:其中有两列,学生姓名和分数

Stud_name   Marks
Jon         25
john        20
ajay        50
ram         27
jay         61
jess        46
troy        23
mike        42
steve       45
glenn       43
我要几个名字和他们的标记

预期产出:

Stud_name   Marks
john        20
ajay        50
jess        46
troy        23
ram         27
glenn       43
请帮忙

我试过:

pd <- filter(df,Stud_name == "john" , "ajay" , "jess")

Error in filter_impl(.df, quo) : 
Evaluation error: operations are possible only for numeric, logical or 
    complex types.

pd如果您可以考虑使用基本解决方案,您可以尝试以下方法:

# your data
dats <- read.table(text='Stud_name   Marks
Jon         25
                   john        20
                   ajay        50
                   ram         27
                   jay         61
                   jess        46
                   troy        23
                   mike        42
                   steve       45
                   glenn       43',sep='', header=T)

# vector with choosen names
names <- c("john","ajay","jess")
dats[which(dats$Stud_name %in% names),]

选择背后的逻辑是什么?程序应该如何决定返回哪些行,这与您当前获得的输出有什么不同?另外,您当前使用的代码是什么?无逻辑只需要根据列中的名称获取名称和标记,作为预期输出。“一些名称”作为数据样本,使用
sample()
?使用
%in%
而不是
=
,即
过滤器(df,Stud\u name%in%c(“john”,“ajay”,“jess”))
问题是关于
dplyr::filter
错误,而不是关于“向我展示备选方案”。是的,没有它就可以工作。感谢s_-tOh,我明白OP尝试的是使用
dplyr::filter
,而不是强制性的。我将编辑答案,谢谢。是的,我正在使用dplyr。谢谢
dats[(dats$Stud_name %in% names),]
  Stud_name Marks
2      john    20
3      ajay    50
6      jess    46