Reputation: 149
library(vegan)
data(dune)
dune.spec<-data.frame(Species=colnames(dune))
species<-as.character(dune.spec$Species)
levels(species)[levels(species)=="Achimill"] <- "test"
library(dplyr)
species<-rename(species, replace = c("Achimill" = "test"))
I'd like to rename a specific name. For example "Achimill" to "test". Seems like such a simple thing to do but I can't find a method that works. Neither levels of rename function works.
Upvotes: 0
Views: 162
Reputation: 3905
library(vegan)
data(dune)
dune.spec = data.frame(Species = colnames(dune))
species = as.character(dune.spec$Species)
species
is character
, that's why you can't get levels
to work, as it operates on factor
class(species)
#[1] "character"
Substitute the way you want using methods available for character
, such as base::gsub
species = gsub("Achimill", "test", species)
Alternatively, since it seems you may actually be trying to use the factors, operate on a factor using appropriate methods
dune.spec$Species = factor(dune.spec$Species, labels = gsub("Achimill", "test", levels(dune.spec$Species)))
dune.spec$Species
# [1] test Agrostol Airaprae Alopgeni Anthodor Bellpere Bromhord Chenalbu
# [9] Cirsarve Comapalu Eleopalu Elymrepe Empenigr Hyporadi Juncarti Juncbufo
#[17] Lolipere Planlanc Poaprat Poatriv Ranuflam Rumeacet Sagiproc Salirepe
#[25] Scorautu Trifprat Trifrepe Vicilath Bracruta Callcusp
#30 Levels: test Agrostol Airaprae Alopgeni Anthodor Bellpere ... Vicilath
Upvotes: 1