I would like to be able to create a sequence of letters in R (to assist in importing data from a SPSS file)

It's quite easy to create a sequence of numbers, for example:

seq(1,1000) [1] 1 2 3 4 5 6 ... 1000 paste("something_",1:12,sep="") [1] something1 something2 ... something12 

But is there any functionality for appending, pasting, or creating sequences of letters like this?

paste("This_",a:z,sep="") [1]This_a This_b This_c ... This_4z 

Thanks in advance!

4 Answers

This is what you're looking for:

> paste("This_", letters, sep="") > [1] "This_a" "This_b" "This_c" "This_d" "This_e" "This_f" "This_g" "This_h" [9] "This_i" "This_j" "This_k" "This_l" "This_m" "This_n" "This_o" "This_p" [17] "This_q" "This_r" "This_s" "This_t" "This_u" "This_v" "This_w" "This_x" [25] "This_y" "This_z" 
3

Did you look at

?LETTERS 

and doesn't that do what you want? Else there are paste() and related functions.

Edit: Maybe the collapse= to paste is what you need:

R> replicate(5, paste(sample(LETTERS, 10, replace=TRUE), collapse="")) [1] "OHZBIYEFMD" "UINBOFEIXN" "UORJZATYNT" "ZNPWNBFFXJ" "ZOKYMTCDKZ" R> 
1

for "a" to "z" it's

letters 

for "A" to "Z" its

LETTERS 

And to print specific letters in the sequence, say if you want only j, k & l

letters[10:12] 
3

Guess you want to get A-1, A-2, A-3, B-1, B-2, B-3, C-1, C-2, C-3 and so on...

I tried this

replicate(3, paste0(LETTERS[1:10], sep="-", 1:3, collapse=", ") 

But this way I get

A-1, B-2, C-3, D-1, E-2, F-3, G-1, H-2, I-3, J-1" "A-1, B-2, C-3, D-1, E-2, F-3, G-1, H-2, I-3, J-1, A-1, B-2, C-3, D-1, E-2, F-3, G-1, H-2, I-3, J-1"

I also tried

paste0(replicate(3, LETTERS[1:10]), sep = "-", 1:3) 

but got the same results..

How can I get the desired sequence

2