2016-03-17 2 views
1

у меня есть кадр df данных с переменной Var.1, состоящей в основном строковых переменных следующим образомОпределение числовых строк в переменной основном составленной нечисловых строк

Var.1 
RA305 
RA430 
RA773 
RA7CQ 
RA90J 
..... 

Тем не менее, эта переменная может также содержать факторы, которые состоят по единственному числу (например, все символы являются цифрами). Я хочу создать новый кадр данных, подбирая последние наблюдения, и мне интересно, как я могу их идентифицировать. Моя попытка была

new_df = filter(df, !grepl("[:digit:]", Var.1)) 

Но все же я не могу получить только числовые наблюдения. Какие-либо предложения?

+0

TRy 'filter (df, grepl ("^-? [0-9.] + $ ", Var.1))' – akrun

+0

Возможно, также упоминаются все зависимости. –

ответ

1

Мы можем использовать ^ и $, чтобы указать начало и конец строки в grepl. Как мы только filter ИНГ числовые только строки, она должна содержать только цифры

filter(df, grepl("^[0-9]+$", Var.1)) 

В методе ФП, в [[:digit:]]+ отсутствует наружный []. Кроме того, он неспецифичен, так как он может выбирать элементы, которые могут быть либо всеми числами, номерами с символами и т. Д. Таким образом, отрицая это, мы можем получить элементы с нечисловыми элементами (как раз наоборот, к чему мы стремимся) предполагая, что в наборе данных есть такие случаи)

+0

@Spacedman Спасибо, ты прав. Я об этом не думал. – akrun

+1

Это работает. Большое спасибо за предложение и объяснение, @akrun. – Edu

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