2016-10-17 4 views
0

У меня есть dataframe как:RI не может выбрать конкретные значения из переменной, которая содержит данные, такие как «01 1 5»

Tabla 
IDrel ID_Sector 
1  01 1 02 
2  01 1 06 
3  01SC 

ID_Sector является фактором, но я могу преобразовать его характер и Я хочу для фильтрации данных, выбрав только некоторые ID_Sector с.

я доказал с

Tabla_1 <- sqldf("SELECT * 
       FROM Tabla 
       WHERE ID_Sector = '01SC'") 

и дает мне dataframe с 0 наблюдений

Я доказал также с:

Tabla_1 <- subset(Tabla, ID_Sector == "01 1") 

, а также дает мне 0 наблюдения.

Я могу с помощью SQLDF выбрать такое наблюдение, как «obs one», но я не могу сделать это с чем-то вроде «1 0 1».

+0

Попробуйте с подмножеством 'trimws' i..e' (Tabla, trimws (ID_Sector) == "01 1") ', предполагая, что это столбец класса' character' – akrun

+0

Вы также можете использовать команду sql like. –

+0

спасибо, но он дает мне такое же количество наблюдений, что и исходная таблица, как если бы фильтр не применялся –

ответ

0

Возможно, я не понимаю ваш вопрос, но делает ли это это для вас?

library(dplyr) 

Tabla <- data.frame(IDrel = 1:3, ID_Sector = as.factor(c("01 01 02", "01 01 06","01SC"))) 

И это дает:

Tabla 

    IDrel ID_Sector 
1  1 01 01 02 
2  2 01 01 06 
3  3  01SC 

Вы можете изменить это в строку символов, до получения пункта в вопрос:

Tabla$ID_Sector <- as.character(Tabla$ID_Sector) 

Example <- Tabla %>% 
    filter(ID_Sector == "01SC") 

Это дает:

Example 

    IDrel ID_Sector 
1  3  01SC 

Здесь мы надеемся, что это помогает вам.

Если нет, то, похоже, вам понадобится выполнить некоторую работу RegEx над рассматриваемой строкой. Для этого, при условии, что вы после того, как последнее слово этой строки, я хотел бы использовать mutate от dplyr и word от stringr:

Tabla1 <- Tabla %>% 
    mutate(ID_Sector_LastWord = word(ID_Sector,start = -1)) 

Tabla 

    IDrel ID_Sector ID_Sector_LastWord 
1  1 01 01 02     02 
2  2 01 01 06     06 
3  3  01SC    01SC 

Затем можно фильтровать по ID_Sector_LastWord.

+0

большое спасибо p0bs! –