在R中的data.frame中的列中一次更改多个名称

时间:2018-03-22 14:53:22

标签: r

我想使用以下内容将我PitchAccent data.frame中非data的列no的名称更改为yes

data$Pitch<-gsub(!("no"), "yes", data$PitchAccent)

将其保存到新列中。

由于我要将大约10个不同的名称更改为yes,因此多次运行data$Pitch<-gsub("H*L","yes",data$PitchAccent)会很烦人。

有更好的方法吗?

修改

PitchAccent列中,我们有:

enter image description here

1 个答案:

答案 0 :(得分:2)

根据您的问题,我不知道您是否在"yes"旁边有许多不同的词语,以便了解如何使用gsub或类似内容。

如果您的PitchAccent列中只有一个单词

yes_words = c(... words you want to change into "yes" ...)
data$Pitch <- data$PitchAccent
data$Pitch[data$Pitch %in% yes_words] <- "yes"

如果你必须检测那些话

library(stringr)
yes_ind = str_detect(data$PitchAccent, c("strings that identify which elements you need to change"))

data$Pitch <- data$PitchAccent
data$Pitch[yes_ind] <- "yes"