我有一个数据框架,其中有多列用于Word表单标记,如本模拟示例所示:
df <- data.frame(
w1 = c("NN1", "NN0", "ADJ", "ADC", "NP0", "VVZ"),
w2 = c("NN0", "NN2", "ADC", "NN0", "VBN", "NN1"),
w3 = c("ADJ", "NN2", "NP0", "VVG", "ADS", "NN1"),
w4 = c("NN2", "NN2", "ADJ", "ADJ", "ADS", "VVD")
)
df
现在,我想使用更广泛的描述对标签进行重新分类,例如单数名词的“名词”(标记为“nn1”)、复数名词的“nn2”)、专有名词的“np0”等。我可以一列一列地进行转换,如下所示:
df$w1_class <- ifelse(grepl("^N", df$w1), "noun",
ifelse(grepl("^V", df$w1), "verb", "adjective"))
df$w2_class <- ifelse(grepl("^N", df$w2), "noun",
ifelse(grepl("^V", df$w2), "verb", "adjective"))
df$w3_class <- ifelse(grepl("^N", df$w3), "noun",
ifelse(grepl("^V", df$w3), "verb", "adjective"))
df$w4_class <- ifelse(grepl("^N", df$w4), "noun",
ifelse(grepl("^V", df$w4), "verb", "adjective"))
如果有更多这样的列和更多的标记类型,就像我在真实数据框架中所做的那样,那么考虑到高度重复的代码,这是一个冗长的练习。转换可以一次性完成吗?