#r
Вопрос:
список фильмов США, отфильтрованных по столбцам
dfUSARating lt;- dfUSAMovies[, c("rowNum","title", "genre", "rating", "vote")]
вытягивание строк жанр содержит триллер
thrill lt;- dfUSARating %gt;% filter(str_detect(dfUSARating$genre, "Thriller")) head(dfUSARating$genre, n=3) [1] ['Documentary', 'Comedy', 'Drama', 'Fantasy', 'Mystery', 'Sci-Fi'] [2] ['Comedy', 'Horror', 'Sci-Fi'] [3] ['Biography', 'Drama', 'Sport']
Там повторяются жанры, я хочу отфильтровать жанр, если он начинается только с триллера, а не если строка содержит триллер. Фильмы имеют несколько жанров, и я получаю повторы.
dput(head(dfUSARating)) structure(list(rowNum = c(6L, 7L, 8L, 12L, 13L, 15L), genre = structure(c(869L, 752L, 638L, 130L, 229L, 910L), .Label = c("['Action', 'Adventure', 'Animation', 'Comedy']", "['Action', 'Adventure', 'Biography', 'Drama', 'History', 'War']", "['Action', 'Adventure', 'Biography', 'Drama', 'History']", " ['Action', 'Adventure', 'Biography', 'History', 'Romance']", "['Action', 'Adventure', 'Biography', 'History']", "['Action', 'Adventure', 'Comedy', 'Crime', 'Drama', 'Thriller']", "['Comedy', 'Drama', 'Mystery']", "['Comedy', 'Drama', 'Romance', 'Fantasy']", "['Comedy', 'Drama', 'Romance', 'Sci-Fi']", "['Comedy', 'Drama', 'Romance', 'Sport']", "['Comedy', 'Drama', 'Romance', 'Thriller']", "['Comedy', 'Drama', 'Romance', 'War']", "['Comedy', 'Drama', 'Romance', 'Western']", "['Comedy', 'Drama']", "['Western']"), class = "factor"), rating = c(5.3, 4.5, 7.8, 4.8, 7.1, 7.6)), row.names = c(NA, 6L), class = "data.frame")
Комментарии:
1. Похоже, у вас есть строки, содержащие данные JSON, поэтому ваша строка не будет начинаться с «Thriller», она будет начинаться с «[‘Thriller». Так что попробуйте
filter(str_detect(genre, "\['Thriller"))
(косые черты необходимы, потому что скобка является специальным символом регулярного выражения). Вы уверены, что скопировали свой dput в данный момент? Если я вставлю это в R, то, похоже, возникнут явные проблемы с цитированием, поэтому я не смогу по-настоящему протестировать код. Кроме того, действительно ли ваши данные образца содержат какие-либо строки, начинающиеся с Thriller? Не похоже, чтобы что-то подходило.2. Да, это так, просто потребовалось начало и конец ввода, это было слишком долго, чтобы вставить все это. Я только что заметил, что ошибка будет исправлена. Попробуй это.
3. Это сработало, спасибо, мистер Клик! очень признателен.