Подмножество на основе столбцов текста и даты

106
11

У меня есть набор данных, который включает текстовое поле и поле даты. Пример в формате.csv:

ID,Text,Date,BP,Person
1,This is Text!,6/24/2013,120,Bob
2,I don't like Text.,6/24/2013,114,Bob
3,Text files are stupid.,6/24/2013,310,Genny
4,"The Cezanne, for 500 please.",6/24/2013,45,Glenn
5,I enhanced my coffee with Kahlua,6/25/2013,105,Genny
6,And something else here.,6/24/2013,200,Bob

Я хочу удалить любую запись, где текстовое поле не содержит слова "[Tt] ext" & датировано 24/04/2013. Таким образом, записи 4 и 6 будут удалены, а все остальное останется.

Я пробовал подмножество рамки так:

newframe <- frame[!which(grep('[Tt]ext', frame$Text) &
frame$Date == '6/24/2013'), ]

Но это ни к чему.

спросил(а) 2013-07-08T16:34:00+04:00 7 лет, 2 месяца назад
1
Решение
91

Вот как выглядит мой последний код, используя команду grepl:

newframe <- frame[ !(!grepl('[Tt]ext', frame$Plain.Text) & frame$Date == '6/24/2013', ]

Это дает мне исходный фрейм данных, за исключением записей, которые не содержат "[Tt] ext" на 6/24/2013.

ответил(а) 2013-07-08T21:27:00+04:00 7 лет, 2 месяца назад
71

Пожалуйста, вы должны предоставить свои данные в повторно добавляемой структуре. Используя grepl, это должно работать:

frame[with(frame,
!grepl('[Tt]ext', Text) & Date == '6/24/2013'),]
ID Text Date BP Person
4 4 The Cezanne, for 500 please. 6/24/2013 45 Glenn
6 6 And something else here. 6/24/2013 200 Bob

ответил(а) 2013-07-08T17:15:00+04:00 7 лет, 2 месяца назад
Ваш ответ
Введите минимум 50 символов
Чтобы , пожалуйста,
Выберите тему жалобы:

Другая проблема