2017-12-18 11 views
0
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")) 

特定の名前を変更したいと思います。たとえば、 "Achimill"から "test"を選択します。このような単純なことのように見えますが、私は動作する方法を見つけることができません。いずれのレベルの名前変更機能も機能しません。名前を変更したオブジェクト<-as.character

答えて

1
library(vegan) 
data(dune) 
dune.spec = data.frame(Species = colnames(dune)) 
species = as.character(dune.spec$Species) 

speciesあなたはlevelsが仕事を得ることができない理由、それはあなたがそのようなbase::gsub

として、 characterのための利用可能な方法を使って好きなように置き換え factor

class(species) 
#[1] "character" 

で動作するようそれは、だ、characterです

species = gsub("Achimill", "test", species) 

また、実際には因子を使用しようとしている可能性があるので、適切なメソッドを使用して因子を操作してください。

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 
+0

gsubです。ありがとう。 – joey5

関連する問題