Как создать двоичный столбец на основе конкретного текста в другом столбце в R? - PullRequest
0 голосов
/ 11 июня 2018

Я работаю в R, и мне нужно создать двоичный столбец, основываясь на том, есть ли у игрока имя Майк (0 для Нет, 1 для Да).Это код, который у меня есть до сих пор, но я не знаю, что делать дальше:

baseball$player_mike <- ifelse(baseball$player_name == "%Mike%", 1, 0)

baseball - это фрейм данных, player_mike - это то, чем будет двоичный столбец, и player_name - список игроков (имеет полное имя).Любое руководство о том, что я делаю неправильно, будет оценено, спасибо!

Ответы [ 2 ]

0 голосов
/ 29 сентября 2018

a data.table альтернатива:

require(data.table) # loads library

setDT(baseball) # sets baseball as a data.table

baseball[, player_mike := 0L] # creates a column and assigns 0 to all its values

baseball[grepl("Mike", player_name, ignore.case = TRUE), player_mike := 1L] 
       # filters rows where "Mike" appears in the player_name and 
       # assigns 1 to player_mike of those rows
0 голосов
/ 29 сентября 2018

Просто дополнительный tidyverse подход к вещам, так как вы впервые работали с ifelse.

library(dplyr)
output <- baseball %>%
  dplyr::mutate(
    player_mike = ifelse(player_name == "Mike", 1, 0)
  )

Если у вас есть экземпляры mike, а также Mike, вы можете сделать tolower(player_name), чтобы приспособиться к этому.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...