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

时间:2018-09-21 10:07:14

标签: r dplyr

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

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.

1 个答案:

答案 0 :(得分:2)

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

# 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),]

或(感谢@markus):

dats[(dats$Stud_name %in% names),]
  Stud_name Marks
2      john    20
3      ajay    50
6      jess    46