On 22 Jan 2014, at 15:51 , William Dunlap <wdun...@tibco.com> wrote:
>> sapply(X, function(m){nlevels(factor(m$latitudes))}) > > I think that length(unique(x)) is a more direct and easier to remember > way of determining the number of unique values in the vector x, > rather than nlevels(factor(x)). However, it may make you forget the possibility of NA: > length(unique(factor(c(1,2,NA)))) [1] 3 > nlevels(factor(c(1,2,NA))) [1] 2 -pd > > Bill Dunlap > TIBCO Software > wdunlap tibco.com > > >> -----Original Message----- >> From: r-help-boun...@r-project.org [mailto:r-help-boun...@r-project.org] On >> Behalf >> Of PIKAL Petr >> Sent: Tuesday, January 21, 2014 11:29 PM >> To: 张以春 >> Cc: r-help@r-project.org >> Subject: Re: [R] how to get the numbers of factors in a matrix >> >> Hi >> >> elaborating answers you already got >> >> sapply(X, function(m){nlevels(factor(m$latitudes))}) >> tapply(N$latitudes, N$species, function(x) nlevels(factor(x))) >> >> shall do the trick >> >> Petr >> >> From: 张以春 [mailto:yczh...@nigpas.ac.cn] >> Sent: Tuesday, January 21, 2014 2:58 PM >> To: PIKAL Petr >> Cc: r-help@r-project.org >> Subject: Re: RE: [R] how to get the numbers of factors in a matrix >> >> Dear Pikal, >> >> Thank you very much for your answer. >> >> I think your example is just the problem I have. >> >> In the following example you gave to me, >> >>>> ff<-factor(letters[1:5]) >>>> levels(ff[1:2]) >>> [1] "a" "b" "c" "d" "e" >>>> fff<-ff[1:2] >>>> nlevels(fff) >>> [1] 5 >>> >>>> fff >>> [1] a b >>> Levels: a b c d e >> >> In my understanding, fff is a subset of ff. Why fff's levels is not "a, b" >> but "a,b,c,d,e". >> >> My problem is quite similar to the example. I just want to split the matrix >> into many >> subsets and calculate the levels of every subset. Can you tell me how to do? >> Thank you >> very much! >> >> Best regards, >> Yichun >> >>> -----原始邮件----- >>> 发件人: "PIKAL Petr" <petr.pi...@precheza.cz<mailto:petr.pi...@precheza.cz>> >>> 发送时间: 2014年1月21日 星期二 >>> 收件人: "张以春" <yczh...@nigpas.ac.cn<mailto:yczh...@nigpas.ac.cn>>, "r- >> h...@r-project.org<mailto:r-help@r-project.org>" >> <r-help@r-project.org<mailto:r- >> h...@r-project.org>> >>> 抄送: >>> 主题: RE: [R] how to get the numbers of factors in a matrix >>> >>> Hi >>> >>> It is rather difficult to understand what problem you have. >>> >>> post some data e.g. by >>> >>> dput(head(bigmatrix)) >>> >>> Maybe your problem is in a factor feature that it preserves also empty >>> levels until you >> specifically drop them. >>> >>>> ff<-factor(letters[1:5]) >>>> levels(ff[1:2]) >>> [1] "a" "b" "c" "d" "e" >>>> fff<-ff[1:2] >>>> nlevels(fff) >>> [1] 5 >>> >>>> fff >>> [1] a b >>> Levels: a b c d e >>> >>> Regards >>> Petr >>> >>>> -----Original Message----- >>>> From: r-help-boun...@r-project.org<mailto:r-help-boun...@r-project.org> >> [mailto:r-help-bounces@r- >>>> project.org<mailto:r-help-bounces@r-%0b%3e %3e project.org>] On Behalf Of >>>> ??? >>>> Sent: Tuesday, January 21, 2014 7:36 AM >>>> To: r-help@r-project.org<mailto:r-help@r-project.org> >>>> Subject: [R] how to get the numbers of factors in a matrix >>>> >>>> Dear friends, >>>> >>>> >>>> I have a question do not know how to resolve. >>>> >>>> >>>> I have a big matrix composed of different columns (I use N here). A >>>> column is "species" and another one is "latitudes". Now, I want to know >>>> how I can get the number of different "latitudes" for every "species". >>>> I have tried to split the matrix according to species (X<-split(N, >>>> N$species) and then use sapply(X, function(m){nlevels(m$latitudes)}) to >>>> get that. But the result shows the total factor numbers of "latitudes" >>>> but not the factor numbers of every species I splitted. Also, I have >>>> tried to use tapply(N$latitudes, N$species, nlevels) to do this. The >>>> result is the same. I am confused about this. Can someone help me with >>>> that? Thank you very much! >>>> >>>> >>>> Best regards, >>>> Yichun >>>> >>>> >>>> >>>> >>>> >>>> >>>> [[alternative HTML version deleted]] >>>> >>>> ______________________________________________ >>>> R-help@r-project.org<mailto:R-help@r-project.org> mailing list >>>> https://stat.ethz.ch/mailman/listinfo/r-help >>>> PLEASE do read the posting guide http://www.R-project.org/posting- >>>> guide.html >>>> and provide commented, minimal, self-contained, reproducible code. >>> >>> ________________________________ >>> Tento e-mail a jakékoliv k němu připojené dokumenty jsou důvěrné a jsou >>> určeny pouze >> jeho adresátům. >>> Jestliže jste obdržel(a) tento e-mail omylem, informujte laskavě neprodleně >>> jeho >> odesílatele. Obsah tohoto emailu i s přílohami a jeho kopie vymažte ze svého >> systému. >>> Nejste-li zamýšleným adresátem tohoto emailu, nejste oprávněni tento email >>> jakkoliv >> užívat, rozšiřovat, kopírovat či zveřejňovat. >>> Odesílatel e-mailu neodpovídá za eventuální škodu způsobenou modifikacemi či >> zpožděním přenosu e-mailu. >>> >>> V případě, že je tento e-mail součástí obchodního jednání: >>> - vyhrazuje si odesílatel právo ukončit kdykoliv jednání o uzavření >>> smlouvy, a to z >> jakéhokoliv důvodu i bez uvedení důvodu. >>> - a obsahuje-li nabídku, je adresát oprávněn nabídku bezodkladně přijmout; >>> Odesílatel >> tohoto e-mailu (nabídky) vylučuje přijetí nabídky ze strany příjemce s >> dodatkem či >> odchylkou. >>> - trvá odesílatel na tom, že příslušná smlouva je uzavřena teprve výslovným >>> dosažením >> shody na všech jejích náležitostech. >>> - odesílatel tohoto emailu informuje, že není oprávněn uzavírat za >>> společnost žádné >> smlouvy s výjimkou případů, kdy k tomu byl písemně zmocněn nebo písemně >> pověřen a >> takové pověření nebo plná moc byly adresátovi tohoto emailu případně osobě, >> kterou >> adresát zastupuje, předloženy nebo jejich existence je adresátovi či osobě >> jím zastoupené >> známá. >>> >>> This e-mail and any documents attached to it may be confidential and are >>> intended only >> for its intended recipients. >>> If you received this e-mail by mistake, please immediately inform its >>> sender. Delete the >> contents of this e-mail with all attachments and its copies from your system. >>> If you are not the intended recipient of this e-mail, you are not >>> authorized to use, >> disseminate, copy or disclose this e-mail in any manner. >>> The sender of this e-mail shall not be liable for any possible damage >>> caused by >> modifications of the e-mail or by delay with transfer of the email. >>> >>> In case that this e-mail forms part of business dealings: >>> - the sender reserves the right to end negotiations about entering into a >>> contract in any >> time, for any reason, and without stating any reasoning. >>> - if the e-mail contains an offer, the recipient is entitled to immediately >>> accept such >> offer; The sender of this e-mail (offer) excludes any acceptance of the >> offer on the part >> of the recipient containing any amendment or variation. >>> - the sender insists on that the respective contract is concluded only upon >>> an express >> mutual agreement on all its aspects. >>> - the sender of this e-mail informs that he/she is not authorized to enter >>> into any >> contracts on behalf of the company except for cases in which he/she is >> expressly >> authorized to do so in writing, and such authorization or power of attorney >> is submitted >> to the recipient or the person represented by the recipient, or the >> existence of such >> authorization is known to the recipient of the person represented by the >> recipient. >> >> >> >> -- >> Dr Yichun Zhang >> State Key Laboratory of Palaeobiology and Stratigraphy, Nanjing Institute of >> Geology and >> Palaeontology >> 39 East Beijing Road, Nanjing, China, 210008 >> >> >> >> ________________________________ >> Tento e-mail a jakékoliv k němu připojené dokumenty jsou důvěrné a jsou >> určeny pouze >> jeho adresátům. >> Jestliže jste obdržel(a) tento e-mail omylem, informujte laskavě neprodleně >> jeho >> odesílatele. Obsah tohoto emailu i s přílohami a jeho kopie vymažte ze svého >> systému. >> Nejste-li zamýšleným adresátem tohoto emailu, nejste oprávněni tento email >> jakkoliv >> užívat, rozšiřovat, kopírovat či zveřejňovat. >> Odesílatel e-mailu neodpovídá za eventuální škodu způsobenou modifikacemi či >> zpožděním přenosu e-mailu. >> >> V případě, že je tento e-mail součástí obchodního jednání: >> - vyhrazuje si odesílatel právo ukončit kdykoliv jednání o uzavření smlouvy, >> a to z >> jakéhokoliv důvodu i bez uvedení důvodu. >> - a obsahuje-li nabídku, je adresát oprávněn nabídku bezodkladně přijmout; >> Odesílatel >> tohoto e-mailu (nabídky) vylučuje přijetí nabídky ze strany příjemce s >> dodatkem či >> odchylkou. >> - trvá odesílatel na tom, že příslušná smlouva je uzavřena teprve výslovným >> dosažením >> shody na všech jejích náležitostech. >> - odesílatel tohoto emailu informuje, že není oprávněn uzavírat za >> společnost žádné >> smlouvy s výjimkou případů, kdy k tomu byl písemně zmocněn nebo písemně >> pověřen a >> takové pověření nebo plná moc byly adresátovi tohoto emailu případně osobě, >> kterou >> adresát zastupuje, předloženy nebo jejich existence je adresátovi či osobě >> jím zastoupené >> známá. >> >> This e-mail and any documents attached to it may be confidential and are >> intended only >> for its intended recipients. >> If you received this e-mail by mistake, please immediately inform its >> sender. Delete the >> contents of this e-mail with all attachments and its copies from your system. >> If you are not the intended recipient of this e-mail, you are not authorized >> to use, >> disseminate, copy or disclose this e-mail in any manner. >> The sender of this e-mail shall not be liable for any possible damage caused >> by >> modifications of the e-mail or by delay with transfer of the email. >> >> In case that this e-mail forms part of business dealings: >> - the sender reserves the right to end negotiations about entering into a >> contract in any >> time, for any reason, and without stating any reasoning. >> - if the e-mail contains an offer, the recipient is entitled to immediately >> accept such >> offer; The sender of this e-mail (offer) excludes any acceptance of the >> offer on the part >> of the recipient containing any amendment or variation. >> - the sender insists on that the respective contract is concluded only upon >> an express >> mutual agreement on all its aspects. >> - the sender of this e-mail informs that he/she is not authorized to enter >> into any >> contracts on behalf of the company except for cases in which he/she is >> expressly >> authorized to do so in writing, and such authorization or power of attorney >> is submitted >> to the recipient or the person represented by the recipient, or the >> existence of such >> authorization is known to the recipient of the person represented by the >> recipient. >> >> [[alternative HTML version deleted]] > > ______________________________________________ > R-help@r-project.org mailing list > https://stat.ethz.ch/mailman/listinfo/r-help > PLEASE do read the posting guide http://www.R-project.org/posting-guide.html > and provide commented, minimal, self-contained, reproducible code. -- Peter Dalgaard, Professor Center for Statistics, Copenhagen Business School Solbjerg Plads 3, 2000 Frederiksberg, Denmark Phone: (+45)38153501 Email: pd....@cbs.dk Priv: pda...@gmail.com ______________________________________________ R-help@r-project.org mailing list https://stat.ethz.ch/mailman/listinfo/r-help PLEASE do read the posting guide http://www.R-project.org/posting-guide.html and provide commented, minimal, self-contained, reproducible code.