Thank you very much for your response, Christian, Roman, and Sarah. Sarah,
I am trying your suggestion but I cannot see the levels: > pa2 = factor(subset(pa, influencia=="AP")$influencia) > levels(pa2$influencia) Error in pa2$influencia : $ operator is invalid for atomic vectors Best, Manuel On 24/04/2011 07:51 a.m., Sarah Goslee wrote: > By default, read.csv() turns character variables into factors, using all the > unique values as the levels. > > subset() retains those levels by default, as they are a vital element of the > data. If you are studying some attribute of men and women, say height, > even if you are only looking at the heights for women it's important to > remember > that men still exist. > > If you don't want influencia to be a factor, you can change that in the import > stringsAsFactors=FALSE. > > If you do want influencia to be a factor, but want the unused levels to be > removed, you can use factor() to do that. > >> testdata<- data.frame(group=c("A", "B", "C", "A", "B", "C"), value=1:6) >> testdata > group value > 1 A 1 > 2 B 2 > 3 C 3 > 4 A 4 > 5 B 5 > 6 C 6 >> str(testdata) > 'data.frame': 6 obs. of 2 variables: > $ group: Factor w/ 3 levels "A","B","C": 1 2 3 1 2 3 > $ value: int 1 2 3 4 5 6 >> subset(testdata, group=="A") > group value > 1 A 1 > 4 A 4 >> subset(testdata, group=="A")$group > [1] A A > Levels: A B C >> ?subset >> factor(subset(testdata, group=="A")$group) > [1] A A > Levels: A > > Sarah > > On Sun, Apr 24, 2011 at 9:04 AM, Manuel Spínola<mspinol...@gmail.com> wrote: >> Dear list members, >> >> I have a question regarding too subsetting a data set in R. >> >> I created an object for my data: >> >> >pa = read.csv("espec_indic.csv", header = T, sep=",", check.names = F) >> >> > levels(pa$influencia) >> [1] "AID" "AII" "AP" >> >> The object has 3 levels for influencia (AP, AID, AII) >> >> Now I subset only observations with influencia = "AID" >> >> >pa2 = subset(pa, influencia=="AID") >> >> but if I ask for the levels of influencia still show me the 3 levels, >> AP, AID, AII. >> >> > levels(pa2$influencia) >> [1] "AID" "AII" "AP" >> >> Why is that? >> >> I was thinking that I was creating a new data frame with only AID as a >> level for influencia. >> >> How can I make a complete new object with only the observations for >> "AID" and that the only level for influencia is indeed "AID"? >> >> Best, >> >> Manuel >> >> -- *Manuel Spínola, Ph.D.* Instituto Internacional en Conservación y Manejo de Vida Silvestre Universidad Nacional Apartado 1350-3000 Heredia COSTA RICA mspin...@una.ac.cr mspinol...@gmail.com Teléfono: (506) 2277-3598 Fax: (506) 2237-7036 Personal website: Lobito de río <https://sites.google.com/site/lobitoderio/> Institutional website: ICOMVIS <http://www.icomvis.una.ac.cr/> [[alternative HTML version deleted]]
_______________________________________________ R-sig-ecology mailing list R-sig-ecology@r-project.org https://stat.ethz.ch/mailman/listinfo/r-sig-ecology