2016-12-01 3 views
-1

Я извлекаю данные с помощью приведенного ниже кода.Удаление последнего символа из каждого значения в столбце в R

imdb_movie_data <-read.csv("https://raw.githubusercontent.com/sundeepblue/movie_rating_prediction/master/movie_metadata.csv") 

description

Теперь я хочу, чтобы удалить последний член из каждой MOVIE_TITLE и для которого я написал следующий код.

substr(imdb_movie_data, 1, (nchar(imdb_movie_data$movie_title)-1)) 

Но это не удаление последнего символа из столбцов. Дайте мне знать, если кто-то нуждается в разъяснении по этому поводу.

+1

Первым параметром должен быть 'imdb_movie_data $ movie_title' – alistaire

+0

Пробовал, но не смог удалить последний термин« Â ». –

+0

Вам нужно убедиться, что 'movie_title' является символьным символом. – JasonWang

ответ

1

две проблемы:

1) imdb_movie_data $ MOVIE_TITLE не является векторный характер, а скорее вектор фактор так должен быть преобразован в значение символа с as.character

2) Вы должны назначить значение imdb_movie_data$movie_title если вы хотите преобразование иметь длительный эффект:

imdb_movie_data$movie_title <- substr(as.character(imdb_movie_data$movie_title), 
         start= 1, 
         stop= nchar(as.character(imdb_movie_data$movie_title))-1) 

> head(imdb_movie_data$movie_title) 
[1] "Avatar "             
[2] "Pirates of the Caribbean: At World's End "    
[3] "Spectre "            
[4] "The Dark Knight Rises "         
[5] "Star Wars: Episode VII - The Force Awakens    " 
[6] "John Carter "  

в R простой акт запуска функции не оказывает никакого влияния на аргументы функции. Вам нужно присвоить исходный вектор, если вы хотите внести изменения в значения.

+0

Удивительно. Вы должны запустить этот код дважды, чтобы получить результат. Вы сталкивались с тем же? Я побежал один раз, и я не получил выход, но второй раз я его получил. –

+0

Что делать, если я использую этот код, где сначала меняю movie_title на символ, а затем вызываю его. мой код, как следует: первая линия -> imdb_movie_data $ MOVIE_TITLE <- as.character (imdb_movie_data $ MOVIE_TITLE) вторая линия -> imdb_movie_data $ MOVIE_TITLE <- подстрока ((imdb_movie_data $ MOVIE_TITLE), старт = 1, остановка = nchar ((imdb_movie_data $ movie_title)) -1) –

+0

Есть ли лучший способ сделать это, потому что все намерение сделать это - удалить символ «Â», и я могу увидеть некоторые фильмы, в которых происходит WALL · E. Так как я должен удалить здесь! Более простым способом было бы удалить Â. –

1

Легкий способ пойти с этим было бы нам регулярное выражение expressions.The следующая команда может Помощь-

imdb_movie_data$movie_title<-str_extract_all(imdb_movie_data$movie_title,"[A-Z a-z]+") 

Вы в конечном итоге получить все, кроме какого-либо специального характера персонажей.

Смежные вопросы