R basics

  1. Даны целые числа n и size, создайте вектор из повторяющихся чисел от 1 до n размера size, например, task1(3, 10) должно вернуть c(1, 2, 3, 1, 2, 3, 1, 2, 3, 1).
  2. Даны целые числа n и size. С помощью функции sample сгенерируйте вектор из случайных целых чисел от 1 до n и верните его. С помощью функций table и print выведите на экран, сколько раз сгенирировалась какое число.
  3. Дан вектор и число k. Удалите из вектора все вхождения этого числа.
  4. Дано целое число steps, сгенерируйте вектор длины steps состоящий из чисел 1 и -1. Верните сумму чисел.
  5. Смешанное распределение. Дано число size. Сгенерируйте вектор размера size по следующему алгоритму: чтобы получить очередное число, вектора сначала бросается монетка, в одном случае нужно сгенерировать число из распределения \(N(0, 1)\). Во втором случае из экспоненциального распределения с \(\lambda=1\)
  6. Сгенерируйте числовые вектора размера 1000, они указаны в конце задания. Для каждого вектора с помощью t-теста проверьте, верно ли, что матожидание равно нулю. Используйте функцию t.test. Потом сравните с помощью двухвыборочного t-теста (это та же самая функция t.test) каждую пару векторов и проверьте верно ли, что матожидания этих векторов совпадают. Функция ничего не должна возвращать, но должна печатать информацию на экране с помощью print. Разберитесь с информацией, которую выводит функция t.test, т.е. поймите всё, что она выводит. Не забудьте посмотреть помощь по этой функции, чтобы правильно выбрать набор аргументов. Необязательное задание, попробуйте разобраться, как в программе извлечь результат вызова t.test и автоматически проверить, попадает ли выборочное матожидание в доверительный интервал, т.е. можно ли принять гипотезу о равенстве матожиданий.
    • x = равномерно распределенные числа в отрезке от -1 до 1
    • y = нормально распределенные числа со средним 0 и стандартным отклонением 1
    • z = нормально распределенные числа со средним 0 и стандартным отклонением 10
    • t = нормально распределенные числа со средним 0.01 и стандартным отклонением 1
  7. А теперь случайное блуждание на плоскости. Дано целое число steps. Сгенерируйте матрицу размера 2 на steps. Каждый столбик может быть одним из четырех вариантов: (1 0), (-1 0), (0 1), (0 -1). Теперь получите сумму чисел в первой строке, и сумму чисел во второй строке. Это координаты того, куда приблуждало блуждание. Верните вектор из двух этих чисел
  8. Дано целое число n, запустите предыдущую задачу n раз, получите n точек и изобразите их на графике.

Дата фреймы r-data-frames понедельник 04 декабря 23:59

  1. Напишите один скрипт task1.R со следующими действиями:
    1. Сохраните в переменную cars дата фрейм Cars93 из библиотеки MASS.
    2. Добавьте в переменную cars столбец kpl (километров в литре), используйте для вычисления столбец MPG.city (миль в галлоне)
    3. Отберите все машины с лошадиной силой (столбец Horsepower) более 200.
    4. Выведите график с зависимостью Horsepower (лошадиных сил) от kpl (километров в литре). Это график из нескольких точек в осях Horsepower и kpl. Установите содержательные подписи к осям. Добвьте линию линейной регрессии.
    5. Создайте копию дата фрейма cars, в котором оставлены только столбцы Horsepower, kpl и wt (вес в тоннах, используйте для этого исходный столбец Weight, который содержит вес в фунтах). Передайте эту копию в качестве единственного аргумента функции plot. Что вы видите на построенном графике?
  2. Напишите один скрипт (не функцию) task2.R.
    1. Создайте новый дата фрейм про шарики. У него должно быть два столбца size и color. Первый — это фактор с уровнями “big”, “small”, второй — фактор с уровнями “red”, “green”, “blue”. Заполните фрейм тысячей независимых равномерно распределенных случайных значений.
    2. Примените к полученному дата фрейму функцию table, функцию summary, функцию plot. Сколько в нем больших зеленых шариков?
    3. Добавьте столбик weight (вес), это должны быть нормально распределенные случайные числа, причем при генерации чисел используйте разные мат. ожидания для шариков разных размеров.
    4. Снова вызовите функции table, summary, plot для полученного фрейма. Что они показывают?

Словарный запас r-vocab понедельник 04 декабря 23:59

В этих заданиях вам придется загрузить csv файл с данными и проделать с ними ряд манипуляций. Как обычно, оформляйте все пункты в виде функций.

Для вывода сообщений используйте функцию cat, она может выводить сразу несколько значений. Например,

      x <- 42
      cat("Значение x равно", x)
  1. Загрузите в переменную vocab файл Vocab.csv с помощью функциию read.csv(). Файл содержит информацию об экспериментах по определению словарного запаса людей разного пола и образования. Он содержит следующие столбцы:
    • идентификатор эксперимента
    • год эксперимента
    • пол испытуемого
    • количество лет образования
    • результат теста на словарный запас: число от 0 до 10 — количество известных испытуемому слов из списка в 10 слов.
  2. Выполните функции str(vocab) и summary(vocab). Убедитесь, что вы понимаете всю информацию, выведенную на экран. Убедитесь, что данные о поле испытуемых загружены в виде фактора.
  3. Посчитайте средний словарный запас всех испытуемых, потом средний словарный запас мужчин, потом средний словарный запас женщин.
  4. Вообще, нет смысла считать средний словарный запас для людей разного возраста. Верните вектор vocab.means со средним словарным запасом отдельно для каждого возраста (количества лет образования). Используйте names(vocab.means), чтобы назначить имена каждому элементу вектора, это должны быть строки вида “x лет”. Используйте функцию paste() для соединения текстов. Например, paste(10, “лет”) создает строку “10 лет”.
  5. Постройте столбцовую диаграмму, где по горизонтали отложено количество лет образования, а по вертикали - средний словарный запас
  6. Постройте аналогичную диаграмму, только для каждого года нужно рисовать два столбца - средний словарный запас отдельно мужчин и женщин.
  7. С помощью t-test проверьте, отличается ли средний словарный запас мужчин и женщин из самого большого количества лет образования.
  8. Как изменяется словарный запас исторически? С помощью функции unique() узнайте, какие года представлены в данных.
  9. Отберите людей с нулевым количеством лет образования. Постройте график зависимости их среднего словарного запаса от года эксперимента. На графике должна отображаться линия, а не набор точек. Добавьте на график зависимости для людей со всеми остальными количествами лет образования.