如何重新编码包含某些字母的字符变量?

How do I recode a character variable containing certain letters?

我有一个数据框,其中我根据某些变量合并了行。这很有效,但我现在遇到的问题是,对于某些字符变量,值是重复的。

我有两个值,“Con”或“Lab”,现在有行(已合并)现在显示“ConCon”或“LabLabLab”。

我的问题是如何重新编码这些值?理想情况下,我需要一个命令,其中包含“Lab”(例如“LabLabLabLab”)的值被转换为 Lab.

如有任何意见,我们将不胜感激。谢谢!

假设您无法通过“LabCon”案例,您可以这样做:

legal_words = ["Con", "Lab"]
to_change_words = ["Con", "ConCon", "LabLabLab", "LabLab", "Lab"]

for i,word in enumerate(to_change_words):
    for legal in legal_words:
        if legal in word:
            to_change_words[i] = legal

print(to_change_words)

这将输出

['Con', 'Con', 'Lab', 'Lab', 'Lab']

在 R 中:

df <- data.frame(id = 1:5, party = c("Con", "ConCon", "LabLabLab", "LabLabLabLab", "ConConCon"))
df$party <- gsub("^(Con|Lab).*", "\1", df$party)
df
##   id party
## 1  1   Con
## 2  2   Con
## 3  3   Lab
## 4  4   Lab
## 5  5   Con