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 at 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:
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
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":
face suit value
10 four spades 4
face suit value
10 four spades 4
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