Планировщик бюджета
Часть раздела Логика и потоки выполнения путешествия по R на Coddy. Урок 63 из 64.
Задание
СложноРеализуйте budget(lines). Первая строка — это заголовок month,type,amount, а каждая последующая строка — одна запись, например 2024-01,income,3000. Запись считается допустимой, если её тип — income или expense, а сумма — число больше 0; все остальные записи пропустите.
Верните по одной строке для каждого месяца в допустимых записях, по порядку: 2024-01: income 3000.00, spent 1250.50, saved 1749.50, где saved — это доход за вычетом расходов (если в месяце нет доходов или расходов, для соответствующего значения учитывается 0). Затем добавьте Best month: с месяцем, в котором было больше всего сбережений (при равенстве выберите первый), и Skipped: с количеством пропущенных записей.
Если ни одна запись не является допустимой, верните только No valid entries и строку Skipped.
Предоставленный код передаёт каждую строку входных данных в budget() и выводит каждую возвращённую строку.
Попробуйте сами
budget <- function(lines) {
# Напишите ваш код здесь
character(0)
}
# Предоставленный код ввода/вывода: оставьте его как есть
input <- suppressWarnings(readLines(file("stdin")))
cat(budget(input), sep = "\n")
Все уроки раздела Логика и потоки выполнения
1Строки углублённо
Подстроки с substr()Форматирование с sprintf()Разделение и объединениеПоиск в строкахЗамена текстаПовторение — создание имени пользователя4Матрицы
Создание матрицИндексация матрицСводные данные по строкам и столбцамАрифметика матрицПовторение — схема рассадки7Семейство Apply
lapply и sapplyMap и mapplyFilter и FindReduceПовторение — конвейер обработки данных10Продвинутые конструкции управления
Функция switch()Векторизованный ifelse()repeat и breakРекурсивные функцииПовторение — классификатор оценок2Поиск по ключам и значениям
Поиск в именованных векторахПроверка ключейДобавление и удаление ключейПеребор имёнПовторение — биржа акций5Проект — Журнал оценок
Добавление учениковВыставление оценок3Множества и подсчёт
Уникальные значенияОперации с множествамиПроверка принадлежностиПодсчёт с помощью table()Повторение — гости мероприятия6Функции как значения
Анонимные функцииПередача функцийВозврат функцийЗамыкания с состояниемПовторение — правила скидок9Таблицы данных
Создание таблиц данныхСтолбцы и строкиФильтрация строкДобавление и сортировкаПовторение — отчёт о продажах12Проект — Трекер расходов
Запись расходовОбщие расходыПотренируйтесь самостоятельно: Онлайн-компилятор R