let's say I have a data set organized in a data.frame object and I use a logical function like dataframe$variable<30 how do I get r to only show me the entries of the dataset for which the outcome of said function is = TRUE, how do I organize only those entries into a new data.frame while otherwise keeping the old data.frame as is?
I know it's probably pretty basic but I'm not an expert and just really need to understand this for my University related work with R.
I'm sorry for the inconvenience and thanks in advance!
Here are two methods. In the first one, the logical condition is used inside of the square brackets that are used to subset a data frame. DF[2,3] give you whatever is in the second row and third column of the data frame and DF[DF$Value < 6, ] gives you all the rows where Value < 6 is TRUE, where Value is the name of a column.
The second method uses the filter function from the dplyr package.
DF <- data.frame(Major = c("A", "A", "B", "B"),
Minor = c("X", "Y", "X", "Y"),
Value = c(5,6,7,4))
DF
Major Minor Value
1 A X 5
2 A Y 6
3 B X 7
4 B Y 4
#method 1
NewDF <- DF[DF$Value < 6, ]
NewDF
Major Minor Value
1 A X 5
4 B Y 4
#method 2
library(dplyr)
NewDF2 <- filter(DF, Value < 6)
NewDF2
Major Minor Value
1 A X 5
2 B Y 4