Skip to content

ddply/tapply and set function

5 messages · Jim Lemon, Bert Gunter, A. Mani

#
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 at ekiga.net
Pronouns: She/Her/Hers
#
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 at 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 at ekiga.net
Pronouns: She/Her/Hers
On Wed, Feb 17, 2021 at 4:24 PM Jim Lemon <drjimlemon at gmail.com> wrote:
#
df <- data.frame(X1 = c(1,1,1,2,2), X2 = c(1,5,7,3,8))
X1 X2
1  1  1
2  1  5
3  1  7
4  2  3
5  2  8
## v is a list, and I would work directly with this rather than converting
to a data.frame. But if you insist:
vector c(1,5,7)
[[1]]
[1] 1 5 7
[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 at gmail.com> wrote:

            

  
  
#
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 at ekiga.net
Pronouns: She/Her/Hers
On Wed, Feb 17, 2021 at 9:50 PM Bert Gunter <bgunter.4567 at gmail.com> wrote: