Hi R users,
I need a way to substitute the values 10:31 to the letters A:V (i.e 10=A,
11=B, ..., 31=V) in a data frame.
For example:
y-c(10,11,12,13)
z-c(28,29,30,31)
df-data.frame(y,z)
df
y z
1 10 28
2 11 29
3 12 30
4 13 31
Then I would substitute it and obtain a data frame like this
Hello, Fabricius,
does
as.data.frame( lapply( df, function( x) LETTERS[ x-9]))
what you want?
Other (here maybe less flexible) ways:
transform( df, y = LETTERS[y - 9], z = LETTERS[ z - 9])
within( df, {y - LETTERS[y - 9]; z - LETTERS[ z - 9]})
Hth -- Gerrit
On Fri, 9 Nov 2012,
Hello,
Try the following. I've changed the name of your data.frame to 'dat',
'df' is an R function.
replace.letter - function(x, first = 1, upper = TRUE){
if(upper)
LETTERS[x - first + 1]
else
letters[x - first + 1]
}
replace.letter(10:31, first = 10)
y -
: Friday, November 9, 2012 4:33 AM
Subject: [R] General function to substitute values in a data frame
Hi R users,
I need a way to substitute the values 10:31 to the letters A:V (i.e 10=A,
11=B, ..., 31=V) in a data frame.
For example:
y-c(10,11,12,13)
z-c(28,29,30,31)
df-data.frame(y,z)
df
4 matches
Mail list logo