[英]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.