Я удаляю все строки в кадре данных, где определенная строка соответствует критериям соответствия строки?
Например:
A,B,C
4,3,Foo
2,3,Bar
7,5,Zap
Как мне вернуть фрейм данных, который исключает все строки, где C = Foo:
A,B,C
2,3,Bar
7,5,Zap
Я удаляю все строки в кадре данных, где определенная строка соответствует критериям соответствия строки?
Например:
A,B,C
4,3,Foo
2,3,Bar
7,5,Zap
Как мне вернуть фрейм данных, который исключает все строки, где C = Foo:
A,B,C
2,3,Bar
7,5,Zap
Просто используйте ==
с символом отрицания (!
). Если dtfm — это имя вашего data.frame:
dtfm[!dtfm$C == "Foo", ]
Или, чтобы переместить отрицание в сравнении:
dtfm[dtfm$C != "Foo", ]
Или, еще короче, используя subset()
:
subset(dtfm, C!="Foo")
dftm[dtfm$C != "Foo", ]
, что то же самое, но немного легче читать.
- person Sacha Epskamp; 11.07.2011
Вы можете использовать пакет dplyr
, чтобы легко удалить эти конкретные строки.
library(dplyr)
df <- filter(df, C != "Foo")
У меня был столбец (A) во фрейме данных с 3 значениями (да, нет, неизвестно). Я хотел отфильтровать только те строки, которые имели значение «да», для которых это код, надеюсь, это тоже поможет вам, ребята, -
df <- df [(!(df$A=="no") & !(df$A=="unknown")),]
если вы хотите использовать dplyr для удаления строки Foo:
df %>%
filter(!C=="Foo")