繁体   English   中英

基于 R 编程中列出的值的数据帧中的 Select 行

[英]Select rows from Data Frame based on listed values in R Programming

我正在使用 R 编程对体育数据进行探索性数据分析...我想根据两个条件从数据框中打印记录: Country == "England" ||(OR operator) Ground == ground 可以是任何以下列表中的一个

List = c("Birmingham" ,"Bristol" ,"Cardiff" ,"Chester-le-Street" , 
              "Leeds" ,"East London" ,"Lord's", "The Oval",
              "Manchester" ,"Nottingham" ,"Southampton" ,"Taunton")

样本数据(提供的缩写给定图像)

data.frame(
  Ground = c('Hambantota', 'Benoni', 'Benoni', 'Hambantota', 'Hambantota',
             'Pallekele', 'Pallekele'),
  Country = c('Bangladesh', 'SouthAfrica', 'Pakistan', 'SriLanka', 'Bangladesh',
              'SriLanka', 'Bangladesh')
)

数据框

我在尝试...

subset(WC_Grounds,WC_Grounds$Country=="England"||WC_Grounds %in% WC_Grounds_List)

但它返回 0 条记录

subset(WC_Grounds, WC_Grounds$Country=="England" | WC_Grounds$Ground %in% WC_Grounds_List)

为你工作?

|| 和 && - 这些运算符是“短路的”:只要 || 看到第一个 TRUE 它返回 TRUE 而不计算任何其他内容。 您应该改用| 它是矢量化的,因此适用于数据集中的多个值。

这是一个使用我添加到您的问题中的简化示例数据的示例:

WC_Grounds <- data.frame(
  Ground = c('Hambantota', 'Benoni', 'Benoni', 'Hambantota', 'Hambantota',
             'Pallekele', 'Pallekele'),
  Country = c('Bangladesh', 'SouthAfrica', 'Pakistan', 'SriLanka', 'Bangladesh',
              'SriLanka', 'Bangladesh')
)

List = c('Hambantota', 'Benoni')

subset(WC_Grounds, WC_Grounds$Country == "SriLanka" | WC_Grounds$Ground %in% List)

#>       Ground     Country
#> 1 Hambantota  Bangladesh
#> 2     Benoni SouthAfrica
#> 3     Benoni    Pakistan
#> 4 Hambantota    SriLanka
#> 5 Hambantota  Bangladesh
#> 6  Pallekele    SriLanka

代表 package (v1.0.0) 于 2021 年 3 月 20 日创建

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM