[R] Accessing Data Frame

Benoit Galarneau benoit@g@l@rne@u @ending from polymtl@c@
Thu Jan 3 19:41:25 CET 2019


Many thanks everyone for the rich feedback. Very impressive. I will  
digest all the information received and continue on my learning around  
R.
Benoit

Duncan Murdoch <murdoch.duncan using gmail.com> a écrit :

> On 03/01/2019 12:39 p.m., Benoit Galarneau wrote:
>> Thanks for the feedback.
>> Point taken about the data.table package, I will take a look for sure.
>> As I am new to the R programming, I'm exploring with the default
>> libraries as a start.
>>
>> I have various options that works like this one:
>>
>> topCard <- deck[1,]
>> #Remove card from deck using row name
>> deck <- deck[!rownames(deck) %in% row.names(topCard),]
>>
>> Is it recommended/safe/good practice to work on items using the item names?
>
> I forgot to address "safety".  Your code above will only be safe if  
> you can guarantee that topCard is always produced by subsetting the  
> deck. If a user does something like
>
> topCard <- data.frame(face = "queen", suit = "spades", value = 12)
>
> then the rownames won't match, and removing topCard will remove the  
> wrong one.
>
> Duncan Murdoch
>
>>
>> Benoit
>>
>> Jeff Newmiller <jdnewmil using dcn.davis.ca.us> a écrit :
>>
>>>> In my programmer's head, something similar to this should "work": ...
>>>> deck[aCard]
>>>
>>> There are some people who agree with you... see the data.table
>>> package, which can be made to behave like this.
>>>
>>> Keep in mind that the aCard data frame in general may have a
>>> different set of column names or more than one row. (I would be
>>> concerned that the logic of your application was inefficiently
>>> designed if `deck` actually has the same columns as `aCard` as in
>>> your example.) Others have pointed out that data frames are
>>> typically combined using the merge function, which allows matching
>>> columns to be specified very flexibly.
>>>
>>>
>>> On January 3, 2019 6:50:22 AM PST, Benoit Galarneau
>>> <benoit.galarneau using polymtl.ca> wrote:
>>>> Hi everyone,
>>>> I'm new to the R world.
>>>> Probably a newbie question but I am stuck with some concept with data
>>>> frame.
>>>> I am following some examples in the "Hands-On Programming with R".
>>>>
>>>> In short, how can I access/filter items in a data frame using a
>>>> variable.
>>>>
>>>> One example consists of manipulating elements from a deck of card:
>>>>
>>>>> deck
>>>>     face     suit value
>>>> 1   king   spades    13
>>>> 2  queen   spades    12
>>>> 3   jack   spades    11
>>>> 4    ten   spades    10
>>>> etc.
>>>>
>>>> Let's say I want to remove or filter out the first card. I know I
>>>> could do deck[-1].
>>>>
>>>> But let's say I have: topCard <- deck[1,]
>>>>
>>>> topCard is then a list of 3 elements
>>>>> topCard
>>>>   face   suit value
>>>> 1 king spades    13
>>>>
>>>> My question is the following, how can I remove or filter out the deck
>>>> using the topCard variable.
>>>>
>>>> In my programmer's head, something similar to this should "work":
>>>>> deck[10,]
>>>>    face   suit value
>>>> 10 four spades     4
>>>>> aCard <- deck[10,]
>>>>> aCard
>>>>    face   suit value
>>>> 10 four spades     4
>>>>> deck[aCard]
>>>> Error in `[.default`(deck, aCard) : invalid subscript type 'list'
>>>>
>>>> Wihout having to specify all elements in the logical tests.
>>>>
>>>> deck[deck$face == aCard$face & deck$suit == aCard$suit & deck$value ==
>>>>
>>>> aCard$value,]
>>>>    face   suit value
>>>> 10 four spades     4
>>>>
>>>> ______________________________________________
>>>> 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.
>>>
>>> --
>>> Sent from my phone. Please excuse my brevity.
>>
>> ______________________________________________
>> 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