2015-11-06 4 views
0

У меня есть dataframe с 1 столбцом с именем 'full_url'. Каждый элемент столбца является всего лишь URL-адресом. Как написать функцию для удаления «http: //» из всех элементов сразу? Мне нужно использовать какое-то регулярное выражение, потому что у некоторых его нет, у некоторых есть https и т. Д. Ближайшим я получил gsub(".*//","",unlist(full_url))выполнить подстроку извлечения в столбце фрейма данных

, но это также возвращает 'full_url1' 'full_url2' 'full_url3'. .. как имена строк по какой-то причине

ответ

0

Без воспроизводимого примера я не уверен, но что-то вроде этой работы?

apply(df$full_url, 1, function(x) ifelse(substr(x,1,7) == "http://", substr(x,8,length(x)),x) 

Таким образом, используйте для перехода по строке и подстроке, чтобы найти первые 7 символов «http: //». Если они заменяют без http, и если они не заменяются, просто x.

+0

'substr' уже векторизован, нет необходимости применять его по строкам. Вы можете избежать обертки «apply» здесь вообще. – thelatemail

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