Создать подмножество с оператором% like% - PullRequest
0 голосов
/ 12 октября 2018

Мне нужна помощь в создании подмножеств с использованием оператора %like% в R .

У меня есть таблица pruebas1, которая содержит эту информацию:

      scenario_name | land_consumption | land_consumption_pct
Contención al 30%      692.00              11.081468525813
Contención al 50%      221.23               3.542703786613
Contención al 70%       94.98               1.520975451494
Contención al 95%       69.29               1.109583760966

И еще ряды.У них общий шаблон, процентное значение «30%», «50%»

Я хочу создать подмножество для каждого процентного значения, и я попытался сделать это с помощью следующего кода:

for (i in 1:33){
  if (prueba1$scenario_name %like% '%30%'){
    esc_30[[i]]<-prueba1$scenario_name[[i]]
  }
} 

Результатом является объект без данных.Я построил это с другом, и мы новички в этом.Как видите, нам нужна помощь, чтобы сначала правильно использовать оператор %like% и, конечно, сделать цикл для создания подмножества для различных значений процентов.

Вы можете помочь нам с конкретными ссылками или помочь с кодом напрямую.

Ответы [ 2 ]

0 голосов
/ 15 октября 2018

Если вы хотите избежать использования регулярных выражений, вы должны использовать «фиксированный» аргумент в grepl.% Like% в data.table является оболочкой для grepl.

Итак, вы можете попробовать что-то вроде:

esc30<-prueba1$scenario_name[grepl("30%",prueba1$scenario_name,fixed=T)]

Если вы хотите получить все столбцы:

esc30<-prueba1[grepl("30%",prueba1$scenario_name,fixed=T),]

Однако, если вы не хотите поднабор элементовсодержащий "30%" в середине текста, вы должны выучить регулярные выражения.

0 голосов
/ 12 октября 2018

Вы, вероятно, думаете об операторе SQL LIKE, где x LIKE '%foo%' означает любые значения, содержащие 'foo' в любой позиции.

Эквивалентом для data.table %like% будетx %like% ".*foo.*".Это потому, что %like% работает с регулярными выражениями .В регулярном выражении строка .* означает «любой символ, повторенный 0, 1 или несколько раз».

В R см. ?regex о том, как R обрабатывает регулярные выражения.

...