2016-10-21 3 views
1

Я пытаюсь использовать функцию подмножества для выделения определенных строк кадра данных, которые содержат символы * или +. Я хотел бы поместить все целые строки своего фрейма данных в новый кадр данных. Я думаю, что подмножество будет лучшим способом сделать это.Как использовать функцию подмножества для поиска специального символа в R

Ниже моя попытка:

nba <- read.csv('nba.csv',header=FALSE) 

nba 
two <- grep('\\Q*\\E',nba$V2) 
one <- grep('\\Q+\\E',nba$V2) 

both <- c(one,two) 

allstar <- subset.data.frame(nba, both) 

Если кто-нибудь может дать мне совет, спасибо. Прошу прощения, если у меня есть какие-либо ошибки в формировании. Это мой первый раз на этом сайте.

спасибо.

Примечание: Я работаю в студии R

+0

Я понимаю, почему он не работает, но есть ли способ заставить его работать? образец кода был бы идеальным. то есть allstar <-subset.data.frame (nba, ....) – Robert

+0

Добро пожаловать в SO. Прежде всего, вы должны прочитать [здесь] (http://stackoverflow.com/help/how-to-ask) о том, как задать хороший вопрос; хороший вопрос имеет лучшие изменения, которые нужно решить, и вы получите помощь. С другой стороны, чтение [this] (http://stackoverflow.com/questions/5963269/how-to-make-a-great-r-reproducible-example) также хорошо. В нем объясняется, как создать воспроизводимый пример в R. Помогите пользователям помочь вам, предоставив часть ваших данных желаемый результат и то, что вы пробовали до сих пор. – SabDeM

ответ

0

subset принимает логические значения для subset аргумента. Используйте grepl ("L" для "логический") вместо того, чтобы:

two <- grepl('\\Q*\\E',nba$V2) 
one <- grepl('\\Q+\\E',nba$V2) 

both <- one | two ## logical "or" operation 

allstar <- subset.data.frame(nba, both) 

Note, two, one и both имеют длину nrow(nba).

+0

Большое спасибо – Robert

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