簡體   English   中英

如何基於R中另一列中的特定文本創建二進制列?

[英]How to create a binary column based on specific text in another column in R?

我正在R中工作,我需要根據播放器是否具有名稱Mike(0表示否,1表示是)創建一個二進制列。 這是我到目前為止的代碼,但是我不知道下一步該怎么做:

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

baseball是數據幀, player_mike是二進制列,而player_name是運動員列表(具有其全名)。 任何關於我做錯事情的指導都將受到感謝,謝謝!

自從您第一次與ifelse合作以來,這只是對事物的另一種tidyverse方法。

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

如果您有實例mike以及Mike ,你可以做tolower(player_name)以適應這一點。

一個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

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM