Menu
Coddy logo textTech

Планировщик бюджета

Часть раздела Логика и потоки выполнения путешествия по R на Coddy. Урок 63 из 64.

challenge icon

Задание

Сложно

Реализуйте 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")

Все уроки раздела Логика и потоки выполнения

Потренируйтесь самостоятельно: Онлайн-компилятор R