Hello again, Let say I have following string: Vec <- c("sada", "asdsa", "sa") Now I want to make each element of this vector with equal length. Basically I want following vector: c("sada ", "asdsa", "sa ") Therefore we can get:> nchar(c("sada ", "asdsa", "sa "))[1] 5 5 5 Is there any possiblity that we can do it programetically? Because I need to handle a really big vector. Thanks for your help.
?nchar will tell you how many characters are in each string (mod multibyte locales) and you can use this to extend any that are shorter than the max with blanks or whatever. -- Bert On Thu, Mar 14, 2013 at 7:42 AM, Christofer Bogaso < bogaso.christofer@gmail.com> wrote:> Hello again, > > Let say I have following string: > > Vec <- c("sada", "asdsa", "sa") > > Now I want to make each element of this vector with equal length. > Basically I want following vector: > > c("sada ", "asdsa", "sa ") > > Therefore we can get: > > > nchar(c("sada ", "asdsa", "sa ")) > [1] 5 5 5 > > > Is there any possiblity that we can do it programetically? Because I > need to handle a really big vector. > > Thanks for your help. > > ______________________________________________ > R-help@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. >-- Bert Gunter Genentech Nonclinical Biostatistics Internal Contact Info: Phone: 467-7374 Website: http://pharmadevelopment.roche.com/index/pdb/pdb-functional-groups/pdb-biostatistics/pdb-ncb-home.htm [[alternative HTML version deleted]]
library(stringr) ?str_pad(Vec,5,"right") #[1] "sada " "asdsa" "sa?? " #or str_pad(Vec,max(nchar(Vec)),"right") #[1] "sada " "asdsa" "sa?? " str_count(str_pad(Vec,5,"right"),"") #[1] 5 5 5 A.K. ----- Original Message ----- From: Christofer Bogaso <bogaso.christofer at gmail.com> To: r-help <r-help at r-project.org> Cc: Sent: Thursday, March 14, 2013 10:42 AM Subject: [R] Working with string Hello again, Let say I have following string: Vec <- c("sada", "asdsa", "sa") Now I want to make each element of this vector with equal length. Basically I want following vector: c("sada ", "asdsa", "sa? ") Therefore we can get:> nchar(c("sada ", "asdsa", "sa? "))[1] 5 5 5 Is there any possiblity that we can do it programetically? Because I need to handle a really big vector. 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.
On Mar 14, 2013, at 9:42 AM, Christofer Bogaso <bogaso.christofer at gmail.com> wrote:> Hello again, > > Let say I have following string: > > Vec <- c("sada", "asdsa", "sa") > > Now I want to make each element of this vector with equal length. > Basically I want following vector: > > c("sada ", "asdsa", "sa ") > > Therefore we can get: > >> nchar(c("sada ", "asdsa", "sa ")) > [1] 5 5 5 > > > Is there any possiblity that we can do it programetically? Because I > need to handle a really big vector. > > Thanks for your help.?format will by default, left justify and pad with spaces to the longest length element in the character vector: Vec <- c("sada", "asdsa", "sa")> format(Vec)[1] "sada " "asdsa" "sa " Regards, Marc Schwartz