Christofer Bogaso
2013-Feb-14 11:43 UTC
[R] Looking for an easy way to change the names of a vector
Hello again, Let say I have following vector (this is basically a snap of very large vector): Data <- 1:8 names(Data) <- c("ada", "fsdfs", "asd fd", "asdsa", "dsada", "asasad", "adas asdad", "aasaa") Data Now I want to change the names according to following rule: 1. If there is any space then replace that space by "-" 2. Otherwise add "-XXX" at the last to each name Therefore the names will be: c("ada-XXX", "fsdfs-XXX", "asd-fd", "asdsa-XXX", "dsada-XXX", "asasad-XXX", "adas-asdad", "aasaa-XXX") Can somebody point me some direct way for that? Thanks for your help
Rui Barradas
2013-Feb-14 12:03 UTC
[R] Looking for an easy way to change the names of a vector
Hello, Use ifelse, and assign its values to names(Data) ifelse(grepl(" ", names(Data)), gsub(" ", "-", names(Data)), paste0(names(Data), "-XXX")) Hope this helps, Rui Barradas Em 14-02-2013 11:43, Christofer Bogaso escreveu:> Hello again, > > Let say I have following vector (this is basically a snap of very large vector): > > > Data <- 1:8 > names(Data) <- c("ada", "fsdfs", "asd fd", "asdsa", "dsada", "asasad", > "adas asdad", "aasaa") > Data > > Now I want to change the names according to following rule: > > 1. If there is any space then replace that space by "-" > 2. Otherwise add "-XXX" at the last to each name > > Therefore the names will be: > > c("ada-XXX", "fsdfs-XXX", "asd-fd", "asdsa-XXX", "dsada-XXX", > "asasad-XXX", "adas-asdad", "aasaa-XXX") > > > Can somebody point me some direct way for that? > > Thanks for your help > > ______________________________________________ > R-help at r-project.org mailing list > https://stat.ethz.ch/mailman/listinfo/r-help > PLEASE do read the posting guide http://www.R-project.org/posting-guide.html > and provide commented, minimal, self-contained, reproducible code. >
Hi, names(Data)[-grep(".*\\s+.*",names(Data))]<-paste(names(Data)[-grep(".*\\s+.*",names(Data))],"-XXX",sep="") names(Data)[grep(".*\\s+.*",names(Data))]<-gsub("[ ]","-",names(Data)[grep(".*\\s+.*",names(Data))]) ?names(Data) #[1] "ada-XXX"??? "fsdfs-XXX"? "asd-fd"???? "asdsa-XXX"? "dsada-XXX" #[6] "asasad-XXX" "adas-asdad" "aasaa-XXX" A.K. ----- Original Message ----- From: Christofer Bogaso <bogaso.christofer at gmail.com> To: r-help <r-help at r-project.org> Cc: Sent: Thursday, February 14, 2013 6:43 AM Subject: [R] Looking for an easy way to change the names of a vector Hello again, Let say I have following vector (this is basically a snap of very large vector): Data <- 1:8 names(Data) <- c("ada", "fsdfs", "asd fd", "asdsa", "dsada", "asasad", "adas asdad", "aasaa") Data Now I want to change the names according to following rule: 1. If there is any space then replace that space by "-" 2. Otherwise add "-XXX" at the last to each name Therefore the names will be: c("ada-XXX", "fsdfs-XXX", "asd-fd", "asdsa-XXX", "dsada-XXX", "asasad-XXX", "adas-asdad", "aasaa-XXX") Can somebody point me some direct way for that? Thanks for your help ______________________________________________ R-help at r-project.org mailing list https://stat.ethz.ch/mailman/listinfo/r-help PLEASE do read the posting guide http://www.R-project.org/posting-guide.html and provide commented, minimal, self-contained, reproducible code.