recode {memisc} | R Documentation |
recode
substitutes old values of a factor or a numeric
vector by new ones, just like the recode facilities in some
commercial statistical packages.
## Default S3 method: recode(x,...,otherwise="NA",to.factor=FALSE) ## S3 method for class 'factor': recode(x,...,otherwise="NA")
x |
A factor or numerical vector |
... |
One or more assignment expressions, the value side specifies
the codes to change, the target side gives the new code.
Vectors may appear on the value side.
If the x is numeric a call to range
may also appear. In that case, values inside this range are exchanged by
new values. If one of the arguments to range is min ,
it is substituted by the minimum of x .
If one of the arguments to range is max ,
it is substituted by the maximum of x .
|
otherwise |
a character string or some other value
that the result may obtain. If equal to NA or "NA" ,
original codes not given an explicit new code are recoded into
NA . If equal to "copy" ,
original codes not given an explicit new code are copied.
|
to.factor |
a logical value; if TRUE , a numeric
argument is recoded into a factor, if TRUE ,
the result is numeric if x is numeric.
Defaults to TRUE if new codes are character strings
and defaults to FALSE if new codes are numeric.
|
The object x
with new codes specified by the ...
arguments.
df <- data.frame(a = 1:7, f = factor(letters[1:7])) transform(df, r = recode(a, 1 -> 5, 2:3-> 2, 7 -> 6)) transform(df, r = recode(a, 1 -> 5, 2:3-> 2, 7 -> 6, otherwise="copy")) transform(df, r = recode(a, 1 -> 5, 2:3-> 2, 7 -> 6, otherwise=100)) transform(df, r = recode(a, 1 -> 5, 2:3 -> 2, 7 -> 6, to.factor=TRUE)) transform(df, r = recode(a, 1 -> "a", 2:3 -> "b", 7 -> "c")) transform(df, r = recode(a, 1 -> "a", 2:3 -> "b", 7 -> "c", otherwise="z")) transform(df, r = recode(a, 1 -> "a", 2:3 -> "b", 7 -> "c", otherwise="copy")) transform(df, r = recode(a, range(min,3) -> "a", 5 -> "b", 7 -> "d", otherwise="copy")) transform(df, r = recode(a, range(max,3) -> "a", 1 -> "b", 2 -> "d", otherwise="copy")) transform(df, r = recode(f, letters[1:3] -> "a", letters[4:5] -> "b", "f" -> "c")) transform(df, r = recode(f, letters[1:3] -> "a", letters[4:5] -> "b", "f" -> "c", otherwise="copy")) transform(df, r = recode(f, letters[1:3] -> "a", letters[4:5] -> "b", "f" -> "c", otherwise="z"))