Ekleme ve Sıralama
Coddy'nin R Journey'sinin Mantık ve Akış bölümünün bir parçası. Ders 45 / 64.
Yeni bir sütun adına atama yapmak sütunu ekler. Sütunlar arasındaki aritmetik işlemler, her vektör aritmetiğinde olduğu gibi satır satır çalışır:
orders <- data.frame(item = c("tea", "jam", "oil"), qty = c(2, 5, 1), price = c(4, 2.5, 9))
orders$total <- orders$qty * orders$price
print(orders)Çıktı:
item qty price total
1 tea 2 4.0 8.0
2 jam 5 2.5 12.5
3 oil 1 9.0 9.0df[order(df$col), ] satırları bir sütuna göre sıralar. Soldaki satır numaraları özgün satırlara bağlı kalır. Büyükten küçüğe sıralamak için eksi işareti veya decreasing = TRUE kullanın; eşitlikler için ikinci bir anahtar ekleyin:
orders <- data.frame(item = c("tea", "jam", "oil"), qty = c(2, 5, 1), price = c(4, 2.5, 9))
orders$total <- orders$qty * orders$price
print(orders[order(-orders$total, orders$item), c("item", "total")])Çıktı:
item total
2 jam 12.5
3 oil 9.0
1 tea 8.0Yeni bir sütun, diğer sütunlardan oluşturulmuş metin olabilir. sprintf() aynı anda tüm sütunlar üzerinde çalışır:
orders <- data.frame(item = c("tea", "jam"), qty = c(2, 5), price = c(4, 2.5))
orders$label <- sprintf("%d x %s", orders$qty, orders$item)
print(orders$label)Çıktı:
[1] "2 x tea" "5 x jam"rbind(), aynı sütunlara sahip tek satırlı bir veri çerçevesinden bir satır ekler ve head(df, n) ilk n satırı tutar:
orders <- data.frame(item = c("tea", "jam"), qty = c(2, 5))
orders <- rbind(orders, data.frame(item = "oil", qty = 1))
print(nrow(orders))
print(head(orders[order(-orders$qty), ], 2))Çıktı:
[1] 3
item qty
2 jam 5
1 tea 2Görev
Kolayorder_totals(df) işlevini tamamlayın. df, item, qty ve price sütunlarına sahiptir. Bir total sütunu ekleyin (miktar çarpı fiyat), satırları toplam değerine göre yüksekten düşüğe sıralayın (toplamları eşit olan öğeler alfabetik sırada), ve satır başına bir satır döndürün: jam: 12.50; toplam iki ondalık basamaklı olmalıdır.
Sağlanan kod, tabloyu read.csv(text = input) ile girdiden okur: ilk satır sütun adlarını içerir ve sonraki her satır, değerleri virgüllerle ayrılmış bir satırdır. Kod, döndürülen her satırı yazdırır.
Kendin dene
order_totals <- function(df) {
# Kodunuzu buraya yazın
character(0)
}
# Sağlanan girdi/çıktı kodu: olduğu gibi bırakın
input <- suppressWarnings(readLines(file("stdin")))
df <- read.csv(text = input)
cat(order_totals(df), sep = "\n")
Bu ders kısa bir quiz içerir. Soruları yanıtlamak ve ilerlemeni kaydetmek için derse başla.
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