簡體   English   中英

如何根據某個字符串值重命名列中的某些觀察值?

[英]How to Rename Certain Observations in Column Based on Certain String Value?

我正在尋找基於某個字符串重命名我的列的某些值。 我當前的數據類似於這個例子:

PlayerID

Hank_Aaron+7
Babe Ruth+5
MMM + 7
Willie Mayes+1
MMM + 3

我想將所有以“MMM”開頭的觀察結果重命名為“MMM”。 例如,我希望上表最終看起來像這樣:

PlayerID

Hank_Aaron+7
Babe Ruth+5
MMM
Willie Mayes+1
MMM

我還需要將列保持在同一 dataframe 中,以便我可以將其用於回歸。 先感謝您!

使用grep ,找到“MMM”字符串的 position 索引,提取它們,然后進行分配(假設“PlayerID”是character class 而不是factor類)

df1$PlayerID[grep("^MMM", df1$PlayerID)] <- "MMM"

我們可以使用startsWith

df$PlayerID[startsWith(df$PlayerID, 'MMM')] <- 'MMM'

我們也可以在replace中使用它:

df$PlayerID <- replace(df$PlayerID, startsWith(df$PlayerID, 'MMM'), 'MMM')
df
#        PlayerID
#1   Hank_Aaron+7
#2    Babe Ruth+5
#3            MMM
#4 Willie Mayes+1
#5            MMM

數據

df <- structure(list(PlayerID = c("Hank_Aaron+7", "Babe Ruth+5", "MMM + 7", 
"Willie Mayes+1", "MMM + 3")), class = "data.frame", row.names = c(NA, -5L))

暫無
暫無

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

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