2017-12-05 19 views
0

現在、NFLチームのデータを扱っています。基本的に私がここでやろうとしているのは、Conferenceという新しいコラムを作成することです。私はチームの列のチームに基づいて会議を生成するif関数を作成しようとしています。私のデータセットはNFL_DATAと呼ばれ、私が興味を持っているカラムはTeamなので、NFL_DATA$Teamを使用しています。基本的には、NFL_DATA$TEAM == 'Philadelphia Eagles'または'Dallas Cowboys'または'New York Giants'または'Washington Redskins'の場合は、NFC Eastと同じになります。会議のコラムでは、これらのチームのいずれかにNFC Eastが表示されます。私は8つの会議すべてでこれをやろうとしています。どんな助けでも大歓迎です!!Rでのif関数を使用した新しい列の作成

は、これまでのところこれは私が持っているとイムは確かにこれはオフになって何:

Conference <- function(NFL_DATA$Team) { 
    if (NFL_DATA$Team == 'Phiadelphia Eagles' | 'Dallas Cowboys' | 'New York Giants' | 'Washington Redskins') y <- "NFC EAST" 
} 
+2

'NFL_DATA $会議< - NA; NFL_DATA $会議[NFL_DATA $ Team%c( 'Phiadelphia Eagles'、 'Dallas Cowboys'、 'New York Giants'、 'Washington Redskins')] - alistaire

+1

さらなる会議にこれを行うには、 '?dplyr :: case_when'を見てください。しかし、まず最初にいくつかのRの基礎を学ぶかもしれません... – Tino

+0

入れ子の 'ifelse'や' case_when'を使う代わりに、8つすべてのことをしたい場合は、@ alistaireのアプローチを使ってそれを書いてください。 – Tino

答えて

1

こちらの機能は必要ない:

east <- c('Phiadelphia Eagles', 'Dallas Cowboys', 'New York Giants', 'Washington Redskins') 

transform(NFL_DATA, Conference = ifelse(Team %in% east, "NFC EAST", "something else") 
+0

2つ以上のケースがある場合、どのように見えますか? – Linus

+0

必要に応じてネストされた 'ifelse'を自由に使用できます;-)。しかし、一般的に、あなたのアプローチはそれほど面倒ではありません。私はbtwを投票しなかった。しかし、 't'を変数として使用しないことを考えてみましょう。これは関数なので('?t')です。 – Tino

0

Dplyrのcase_whenが長いifelseたstatmentsに便利です。

library(dplyr) 
NFL_Data <- 
    NFL_Data %>% mutate("Conference" = case_when(
    Team %in% c(
     'Phiadelphia Eagles' , 
     'Dallas Cowboys' , 
     'New York Giants' , 
     'Washington Redskins' 
    ) ~ 'NFC EAST', 
    Team %in% c(
     'New England Patriots' , 
     'Buffalo Bills' , 
     'New York Jets' , 
     'Miami Dolphins' 
    ) ~ 'AFC EAST', 
    TRUE ~ "NFC WEST" 
) 

TRUE ~ "NFC WEST"の残りの部分の前に、Team %in% c("List_of_Teams") ~ "Conference_Name"行を続けて追加することができますNFLカンファレンス。

関連する問題