-5

I am having trouble subsetting a DataFrame in R. The dataframe looks like this

  carat       cut color clarity depth table price    x    y    z
1  0.23     Ideal     E     SI2  61.5    55   326 3.95 3.98 2.43
2  0.21   Premium     E     SI1  59.8    61   326 3.89 3.84 2.31
3  0.23      Good     E     VS1  56.9    65   327 4.05 4.07 2.31
4  0.29   Premium     I     VS2  62.4    58   334 4.20 4.23 2.63
5  0.31      Good     J     SI2  63.3    58   335 4.34 4.35 2.75
6  0.24 Very Good     J    VVS2  62.8    57   336 3.94 3.96 2.48

The code i am using to subset it looks like this

subset(diamonds, color = D)

For whatever reason the subsetted dataframe does not get filtered correctly. When i look at it afterwords, it includes colors beyond just the letter D. Can somebody explain to my why this is happening? and also how i can fix it?

Keep in mind that i'm very new to R

user3590113
  • 517
  • 7
  • 13

2 Answers2

2
subset(diamonds, color == 'D')

is how you subset and is well covered in the docs.

Sidhha
  • 268
  • 1
  • 8
0

Whereas for readability the option pointed for Sidhha is good, some people argue, including a warning in the help file of subset, that it is better to use the standard subsetting functions like [. This is discussed here, and here by Hadley Wickham.

So using the standard subsetting function [ as Heroka wrote in the comments is sometimes preferable:

diamonds[diamonds$color == "D", ]
Community
  • 1
  • 1
mpalanco
  • 12,960
  • 2
  • 59
  • 67