[R] How to change variables in datasets automatically
Muhammad Subianto
subianto at gmail.com
Fri Apr 29 13:57:36 CEST 2005
Dear R-helpers,
Suppose I have a dataset,
data(iris)
a <- data.frame(Sepal.Length=c(1:4), Sepal.Width=c(2:5),
Petal.Length=c(3:6), Petal.Width=c(4:7), Species=rep("rosa",4))
b <- iris[1:10,]
newtest.iris <- rbind(a,b)
> newtest.iris
Sepal.Length Sepal.Width Petal.Length Petal.Width Species
1 1.0 2.0 3.0 4.0 rosa
2 2.0 3.0 4.0 5.0 rosa
3 3.0 4.0 5.0 6.0 rosa
4 4.0 5.0 6.0 7.0 rosa
11 5.1 3.5 1.4 0.2 setosa
21 4.9 3.0 1.4 0.2 setosa
31 4.7 3.2 1.3 0.2 setosa
41 4.6 3.1 1.5 0.2 setosa
5 5.0 3.6 1.4 0.2 setosa
6 5.4 3.9 1.7 0.4 setosa
7 4.6 3.4 1.4 0.3 setosa
8 5.0 3.4 1.5 0.2 setosa
9 4.4 2.9 1.4 0.2 setosa
10 4.9 3.1 1.5 0.1 setosa
I want to change each labels (variables) like: Sepal.Length=SL, Sepal.Width=SW,
Petal.Length=PL, Petal.Width=PW, and Species=Class. Then I want to
change each cell
in Species variable like rosa=0 and setosa=1. The result something like this,
> NewIris
SL SW PL PW Class
1 1.0 2.0 3.0 4.0 0
2 2.0 3.0 4.0 5.0 0
3 3.0 4.0 5.0 6.0 0
4 4.0 5.0 6.0 7.0 0
5 5.1 3.5 1.4 0.2 1
6 4.9 3.0 1.4 0.2 1
7 4.7 3.2 1.3 0.2 1
8 4.6 3.1 1.5 0.2 1
9 5.0 3.6 1.4 0.2 1
10 5.4 3.9 1.7 0.4 1
11 4.6 3.4 1.4 0.3 1
12 5.0 3.4 1.5 0.2 1
13 4.4 2.9 1.4 0.2 1
14 4.9 3.1 1.5 0.1 1
>
I can do it the result above like this,
> Class <- ifelse(newtest.iris$Species=="rosa", 0, 1)
> NewIris <- data.frame(SL = newtest.iris$Sepal.Length,
+ SW = newtest.iris$Sepal.Width,
+ PL = newtest.iris$Petal.Length,
+ PW = newtest.iris$Petal.Width,
+ Class)
Because I have more variables in my datasets which I must to change.
Is there any way to change automatically and which library contains a
function to compute that?
I would be very happy if anyone could help me.
Thank you very much in advance.
Kindly regards,
Muhammad Subianto
More information about the R-help
mailing list