如何重新编码包含某些字母的字符变量?
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
我有一个数据框,其中我根据某些变量合并了行。这很有效,但我现在遇到的问题是,对于某些字符变量,值是重复的。
我有两个值,“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