2017-12-05 3 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')] <- 'NFC_EAST' '로 표시됩니다. 룩업 테이블] (http://adv-r.had.co.nz/Subsetting.html#applications) – 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

사례가 두 개 이상인 경우 어떻게됩니까? – Linus

+0

필요한만큼 중첩 된'ifelse'를 자유롭게 사용할 수 있습니다. 그러나 일반적으로 접근 방법은 덜 혼란 스럽습니다. 나는 btw 다운 투표하지 않았다. 그러나 함수 ('? t')이기 때문에't'를 변수로 사용하지 않는 것이 좋습니다. – Tino

0

Dplyr의 case_when 긴 ifelse 문에서도 편리하다 :

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 회의.