Печать имен строк для значений в матрице - PullRequest
0 голосов
/ 05 февраля 2019

У меня проблемы с печатью имени строки для определенных значений в матрице.Следующие два вопроса были трудными:

  1. В какие дни она прибыла быстрее всех в первую неделю?(Должны быть напечатаны только дни недели. (Подсказка: используйте названия строк.)

  2. Определите дни второй недели, в которую она прибыла на работув течение получаса. (Должны быть напечатаны только дни недели).

Этот набор данных называется commutes

          Week1 Week2
Monday       26    22
Tuesday      35    23
Wednesday    24    36
Thursday     31    32
Friday       34    25

1 Ответ

0 голосов
/ 06 февраля 2019

1) Вы можете использовать функцию which(), чтобы найти индекс наименьшего значения в первом столбце.Вы предоставляете which() логический объект (в данном случае, векторизованный равный тест).Предположим, что ваша матрица привязана к m:

ind = which(m[,'Week1'] == min(m[,'Week1']))

Затем вы можете использовать индекс, чтобы получить имя строки, совпадающее с логическим, используя rownames():

day = rownames(m)[ind]

2) По сути, это то же самое, за исключением того, что вы будете ожидать вектора индексов, а не одного индекса.Снова используйте which(), чтобы найти индексы, которые соответствуют желаемому логическому выражению:

inds = which(m$Week2 < 30)
days = rownames(m)[inds]
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...