[R] ddply/tapply and set function

A. Mani @@m@n|@cm@ @end|ng |rom gm@||@com
Thu Feb 18 06:32:37 CET 2021


Update:
The whole problem was due to set() from library sets.
'sets' is not a very consistent package, and users should be warned.

Set$new() and as.Set() from set6 work in a predictable, object-oriented way.

Thanks and Best

A Mani

Prof.Dr.(Miss) A Mani
ASL, AMS, ISRS, CLC, CMS, MTA
Senior Member, International Rough Set Society
Research Scientist, Indian Statistical Institute, Kolkata
Formerly HBCSE, TIFR, CU.
Homepage: https://www.logicamani.in
Blog: https://logicamani.blogspot.in/
Research Gate: https://www.researchgate.net/profile/Mani_A
sip:girlprofessor using ekiga.net
Pronouns: She/Her/Hers

On Wed, Feb 17, 2021 at 9:50 PM Bert Gunter <bgunter.4567 using gmail.com> wrote:
>
> df <- data.frame(X1 = c(1,1,1,2,2), X2 = c(1,5,7,3,8))
> > df
>   X1 X2
> 1  1  1
> 2  1  5
> 3  1  7
> 4  2  3
> 5  2  8
> > v <- with(df, tapply(X2, X1, c))
> ## v is a list, and I would work directly with this rather than converting to a data.frame. But if you insist:
>
> > df2 <- data.frame(v, row.names = names(v))
> > df2[1,1] ## produces a **list** with a single component containing the vector c(1,5,7)
> [[1]]
> [1] 1 5 7
>
> > df2[[1,1]] ## produces a vector -- note doubled brackets
> [1] 1 5 7
>
>
> Cheers,
> Bert Gunter
>
> "The trouble with having an open mind is that people keep coming along and sticking things into it."
> -- Opus (aka Berkeley Breathed in his "Bloom County" comic strip )
>
>
> On Wed, Feb 17, 2021 at 6:50 AM A. Mani <a.mani.cms using gmail.com> wrote:
>>
>> The original data frame can be like
>> Type   Id
>> 1         1
>> 1         5
>> 1         7
>> 2         3
>> 2         8
>> ..        ....
>>
>> tapply(Id,Type,set) will yield the sets correctly (assuming the data
>> frame is attached) but not a data frame of the form mentioned.
>>
>> A similar ddply command does not work at all with the function 'set'
>> (while 'mean' etc work fine)
>>
>> Thanks and Best
>>
>> A Mani
>>
>> Prof.Dr.(Miss) A Mani
>> ASL, AMS, ISRS, CLC, CMS, MTA
>> Senior Member, International Rough Set Society
>> Research Scientist, Indian Statistical Institute, Kolkata
>> Formerly HBCSE, TIFR, CU.
>> Homepage: https://www.logicamani.in
>> Blog: https://logicamani.blogspot.in/
>> Research Gate: https://www.researchgate.net/profile/Mani_A
>> sip:girlprofessor using ekiga.net
>> Pronouns: She/Her/Hers
>>
>> On Wed, Feb 17, 2021 at 4:24 PM Jim Lemon <drjimlemon using gmail.com> wrote:
>> >
>> > Hi  A,
>> > I'm unable to work out what you are using as input. Maybe:
>> >
>> > id<-data.frame(Type=c(1,2,1,1,2),set=c(1,3,5,7,8))
>> >
>> > but that doesn't work with your
>> >
>> > tapply(id,Type,set)
>> >
>> > command. Perhaps a bit more detail?
>> >
>> > Jim
>> >
>> >
>> >
>> > On Wed, Feb 17, 2021 at 7:48 PM A. Mani <a.mani.cms using gmail.com> wrote:
>> > >
>> > > I want a data frame (derived from another data frame) of the form
>> > >
>> > > Type   Set
>> > > 1         {1,5, 7}
>> > > 2         {3,8)
>> > > ..        ....
>> > >
>> > > tapply(Id,Type, set) works, but does not yield a data frame.
>> > > 'set' is from package set/set6/etc
>> > > ddply does not seem to work with the function.
>> > > How should I proceed with this optimally?
>> > >
>> > >
>> > > Thanks and Best
>> > >
>> > > A Mani
>> > >
>> > > Prof.Dr.(Miss) A Mani
>> > > ASL, AMS, ISRS, CLC, CMS, MTA
>> > > Senior Member, International Rough Set Society
>> > > Research Scientist, Indian Statistical Institute, Kolkata
>> > > Formerly HBCSE, TIFR, CU.
>> > > Homepage: https://www.logicamani.in
>> > > Blog: https://logicamani.blogspot.in/
>> > > Research Gate: https://www.researchgate.net/profile/Mani_A
>> > > sip:girlprofessor using ekiga.net
>> > > Pronouns: She/Her/Hers
>> > >
>> > > ______________________________________________
>> > > R-help using r-project.org mailing list -- To UNSUBSCRIBE and more, see
>> > > 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.
>>
>> ______________________________________________
>> R-help using r-project.org mailing list -- To UNSUBSCRIBE and more, see
>> 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.



More information about the R-help mailing list