определяя группы, затем подгруппы - PullRequest
0 голосов
/ 03 февраля 2020

Мне нужно переместить мой код python в R, и мне было интересно, есть ли более элегантный способ настроить это в R.

У меня есть предметы, которые составляют основную группу. Например, когда присутствует точная еда, основная группа (фрукты, выпечка) вместе с точной пищей появляется в отчете.

Тип | Еда

Фрукты | апельсин

Фрукты | яблоко

Паста | Утренняя булочка

Это небольшой пример:

Fruits = ['orange', 'apple', 'grapes']
group1 = worksheet_rt.loc[df['item'].isin(Fruits)]

Pastry = ['croissant', 'morning bun']
group2 = worksheet_rt.loc[df['item'].isin(Pastry)]

Food = ['Fruits', 'Pastry'] 

worksheet.food = pd.concat([group1, group2], keys=Food, axis=0)

Ответы [ 2 ]

0 голосов
/ 03 февраля 2020

Полагаю, ваша проблема в том, что вы наблюдали продукты питания (то, что вы называете «точными» продуктами) и вам необходимо распределить их по категориям продуктов питания. Если это правильно, тогда вы можете действовать следующим образом:

Сначала ваши наблюдаемые предметы в любом порядке:

food_item <- c("apple", "orange", "croissant", "grapes", "bun", "croissant", "orange", "apple")

Теперь категории, к которым принадлежат темы: их можно определить с помощью ifelse. предложение, которое в данном случае определяет все фрукты как fruit, а все остальное, что не удовлетворяет условию как pastry:

food_type <- ifelse(food_item=="apple"|food_item=="orange"|food_item=="grapes", "fruit", "pastry")

И, наконец, вы можете собрать два вектора в кадре данных :

df_food <- data.frame(food_item, food_type); df_food
  food_item food_type
1     apple     fruit
2    orange     fruit
3 croissant    pastry
4    grapes     fruit
5       bun    pastry
6 croissant    pastry
7    orange     fruit
8     apple     fruit

Это помогает?

0 голосов
/ 03 февраля 2020

Если я правильно понимаю вашу проблему, вы хотите ...

Вы можете хранить свои данные в виде таблицы:

tibble::tibble(Type = c("fruit", "fruit", "pastry"),
               Food = c("orange", "apple", "morning bun"))

... или data.frame:

data.frame(Type = c("fruit", "fruit", "pastry"),
           Food = c("orange", "apple", "morning bun"))
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...