【发布时间】:2018-04-13 09:36:52
【问题描述】:
我有以下列名向量:
plot_variables <- c("Ser predicted (g/L)", "Ser initial (g/L)", "Ser experimental (g/L)", "Glu predicted (g/L)", "Glu initial (g/L)", "Glu experimental (g/L)", Pro predicted (g/L), ...)
我有这些短名称的词汇表:
df_glossary <- data.frame(
short = c("Cys", "Pro", "Phe", "Ser", "Glu", "Glc", ...),
full = c("Cysteine", "Proline", "Phenylalanine", "Serine", "Glutamate", "Glucose", ...),
stringsAsFactors = FALSE
)
我想匹配这两个并有类似的东西:
names_matching <- data.frame(
variable = c("Ser predicted (g/L)", "Ser initial (g/L)", "Ser experimental (g/L)", ...),
label = c("Serine predicted (g/L)", "Serine initial (g/L)", "Serine experimental (g/L)", ...)
)
还有比这更优雅的方法吗:
pl<-unlist(plot_variables)
pl<-sapply(1:nrow(df_glossary) , function(x){
pl<<- gsub(df_glossary$short[x], df_glossary$full[x], pl, fixed = TRUE)
})
pl <- pl[,nrow(df_glossary)] %>% data.frame()
names_matching <- cbind(plot_variables %>% data.frame, pl)
【问题讨论】: