【发布时间】:2018-05-24 18:36:32
【问题描述】:
我有一个名为“Country”的行的数据框。例如,当原产国是美国时,条目被列为“路易斯安那州 - 美国”。我试图在最后去掉“- USA”,这样它只会说它来自哪个州。
所以,我目前有这样的东西(尽管我的条目有数千个):
df <- data.frame(ID = 1:4, Country = c("Louisiana - USA", "Canada","France", "Maine - USA"))
我尝试的是以下内容:
for (i in 1:nrow(df)) {
df$USA[i] <- ifelse(grepl(" USA| États-Unis", df$Country[i]), 1, 0)
}
index_USA <- which(df$USA == 1)
for (int in index_USA) {
gsub(" - USA", "", df$Country[int])
}
但是,此代码不起作用。 我还尝试使用 stringr 包而不是 gsub。因此,我将最后一个 for 循环替换为:
for (int in index_USA) {
str_replace_all(df$Country[int], " - USA", "")
}
但这也不起作用。我觉得我犯了一个明显的错误,但我无法弄清楚(也许我需要使用正则表达式?)
【问题讨论】:
-
df$Country <- gsub(" - USA","",df$Country)