首页 > 解决方案 > R数据框根据其他列组合数据框中的列

问题描述

我有一个数据框如下:

df <- tibble::tribble(~home, ~visitor, ~hcountry, ~vcountry,
"Milan", "Manchester", "ITA", "ENG",
"LIVERPOOL", "MILAN", "ENG", "ITA",
"Real Madrid", "Juventus", "SPA", "ITA")

#> # A tibble: 3 x 4
#>   home        visitor    hcountry vcountry
#>   <chr>       <chr>      <chr>    <chr>   
#> 1 Milan       Manchester ITA      ENG     
#> 2 LIVERPOOL   MILAN      ENG      ITA     
#> 3 Real Madrid Juventus   SPA      ITA 

并且只想获得意大利球队,即:米兰,米兰,尤文图斯......不使用循环怎么可能?

标签: rdataframe

解决方案


首先,我推荐一个基本的 R 教程来熟悉基本的 R 数据操作,如子集等。例如,参见R for Beginners on CRAN。

在你的情况下,你可以这样做:

df[df$hcountry == "ITA" | df$vcountry == "ITA", ]
#    home    visitor hcountry vcountry
#1       Milan Manchester      ITA      ENG
#2   LIVERPOOL      MILAN      ENG      ITA
#3 Real Madrid   Juventus      SPA      ITA

或者

subset(df, hcountry == "ITA" | vcountry == "ITA")

样本数据

df <- read.table(text =
    "home  visitor  hcountry vcountry
Milan Manchester ITA ENG
LIVERPOOL MILAN ENG ITA
'Real Madrid' Juventus SPA ITA", header  =T)

推荐阅读