Toplam Harcama
Coddy'nin R Journey'sinin Mantık ve Akış bölümünün bir parçası. Ders 58 / 64.
Görev
KolayTOTAL komutunu tracker() işlevine ekleyin. Önceki adımlardaki her komutun daha önce olduğu gibi tam olarak çalışmaya devam etmesini sağlayın.
TOTAL:total:yanıtını, kaydedilen tüm tutarların iki ondalık basamaklı toplamı izlesin; ardından, count:ve giderlerin sayısı gelsin. Örneğin:total: 512.50, count: 2. Hiçbir kayıt olmadığında yanıttotal: 0.00, count: 0olur.
Sağlanan kod, her giriş satırını tek bir komut olarak tracker() işlevine iletir ve döndürülen her yanıtı kendi satırına yazdırır. Tarihler YYYY-MM-DD biçiminde yazılır, kategoriler küçük harfli sözcüklerdir ve girdi yalnızca şimdiye kadar açıklanan komutları içerir.
Kendin dene
tracker <- function(commands) {
expenses <- data.frame(date = character(0), category = character(0), amount = numeric(0))
replies <- c()
for (cmd in commands) {
parts <- strsplit(cmd, " ")[[1]]
if (parts[1] == "ADD") {
amount <- suppressWarnings(as.numeric(parts[4]))
if (length(parts) != 4 || is.na(amount) || amount <= 0) {
replies <- c(replies, paste("invalid:", cmd))
} else {
expenses <- rbind(expenses, data.frame(date = parts[2], category = parts[3], amount = amount))
replies <- c(replies, sprintf("added %s %.2f", parts[3], amount))
}
}
}
replies
}
# Sağlanan girdi/çıktı kodu: olduğu gibi bırakın
input <- suppressWarnings(readLines(file("stdin")))
cat(tracker(input), sep = "\n")
Mantık ve Akış bölümündeki tüm dersler
1Dizeleri Derinlemesine
substr() ile Alt Dizelersprintf() ile BiçimlendirmeBölme ve BirleştirmeDizelerde AramaMetin DeğiştirmeTekrar - Kullanıcı Adı Oluşturucu4Matrisler
Matris OluşturmaMatrisleri İndekslemeSatır ve Sütun ÖzetleriMatris AritmetiğiTekrar - Oturma Planı2Anahtar-Değer Aramaları
Adlandırılmış Vektör AramalarıAnahtarları DenetlemeAnahtar Ekleme ve KaldırmaAdlar Üzerinde DöngüTekrar - Hisse Senedi Masası5Proje - Not Defteri
Öğrenci EklemeNotları Kaydetme3Kümeler ve Sayma
Benzersiz DeğerlerKüme İşlemleriÜyelik Testleritable() ile SaymaTekrar - Etkinlik Konukları6Değer Olarak Fonksiyonlar
Anonim FonksiyonlarFonksiyonları GeçirmeFonksiyon DöndürmeDurum Bilgili Closure'larTekrar - İndirim Kuralları9Veri Çerçeveleri
Veri Çerçeveleri OluşturmaSütunlar ve SatırlarSatırları FiltrelemeEkleme ve SıralamaTekrar - Satış Raporu12Proje - Harcama Takipçisi
Harcamaları KaydetmeToplam HarcamaKendi başına pratik yap: Online R derleyicisi