R 根据行中的值从列中选择行
我有一个df如下:其中有两列,学生姓名和分数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
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