首页 > 解决方案 > 如何通过在R中搜索特定字母和字母顺序来重命名变量并将其更改为另一个变量

问题描述

我对 R. 非常陌生,并且正在开展一个项目,其中列的变量来自不同的国家。但是,有些拼写不同,或命名不同。例如,“United States”的一些变量将是“USA”、“Ahem....Amerca”、“'merica”、“USSA”“USAUSAUSA”。我希望能够将它们简单地重命名为“美国”,并且只保留/类似于“美国”、“加拿大”和“英国”的变量,并完全省略/删除整行。

我一直在考虑在 for 循环中使用多个 if 语句或使用 case_when。但我不完全确定如何实际编写代码来做到这一点。

我希望查看一列 2460 行并查找特定单词和字母顺序并将其更改为“美国”

CandyData <- #是该列所在的数据框

for ( row in 1:length(CandyData))
{
  if (x == "USA"| "Ahem...Amerca"|"merica"|"USSA"|"USAUSAUSA")
{x = "United States" }
else if 
{x.omit }
}

我真的没有任何错误,因为我无法使其正常工作。

标签: rrstudio

解决方案


如前所述,提供可重现的示例非常重要。它可以帮助可能想要帮助您的人!否则,可能会很耗时...

也就是说,您不需要循环来执行此操作(实际上,不建议在 R 中无意中使用循环,因为它通常与矢量化替代方案一起工作得更好)。

假设您正在处理的列名为“Country”:

# Update wrong values
wrong_names <- c("USA", "Ahem...Amerca", "merica", "USSA", "USAUSAUSA")
CandyData$Country[CandyData$Country %in% wrong_names] <- "United States"

# Select lines for target-countries only
CandyData[CandyData$Country %in% c("United States", "Canada", "United Kingdom"), ]

我希望它有帮助!
最好的


推荐阅读