我对R.来说是个新手,正在从事一个项目,该项目采用的列变量是不同的国家/地区。但是,有些拼写不同或命名不同。例如,“美国”的一些变量将是“美国”,“ Ahem .... Amerca”,“美国”,“ USSA”“ USAUSAUSA”。我希望能够将它们简单地重命名为“ United States”,并且仅保留/类似于“ United States”,“ Canada”和“ United Kingdom”的变量,并完全忽略/删除整行。
我一直在考虑在for循环中使用多个if语句或使用case_when。但我不能完全确定如何实际编写代码来做到这一点。
CandyData <-#是列所在的数据框
for ( row in 1:length(CandyData))
{
if (x == "USA"| "Ahem...Amerca"|"merica"|"USSA"|"USAUSAUSA")
{x = "United States" }
else if
{x.omit }
}
我真的没有任何错误,因为我无法使其正常工作。
答案 0 :(得分:0)
如前所述,提供可复制的示例非常重要。它可以帮助可能想要帮助您的人!否则,可能会很耗时...
也就是说,您不需要执行循环(实际上,不建议在R中无意使用循环,因为通常它在矢量化替代方法中效果更好)。
假设您正在使用的列称为“国家/地区”:
# 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"), ]
希望对您有帮助!
最好