Formatowanie za pomocą sprintf()
Część sekcji Logika i przepływ sterowania ścieżki R w Coddy. Lekcja 2 z 64.
sprintf() tworzy ciąg znaków z szablonu. Każdy symbol zastępczy % jest zastępowany kolejnym argumentem: %s dla tekstu, %d dla liczb całkowitych i %f dla liczb dziesiętnych.
name <- "Ada"
age <- 36
print(sprintf("%s is %d years old", name, age))Wynik:
[1] "Ada is 36 years old"%d akceptuje tylko liczby całkowite: sprintf("%d", 2.5) kończy działanie z błędem.
Precyzja między % a f określa liczbę miejsc po przecinku, więc %.2f zaokrągla do dwóch miejsc:
total <- 3 * 4.5 * 1.2
print(sprintf("Total: %.2f", total))Wynik:
[1] "Total: 16.20"Szerokość dopełnia wartość spacjami do podanej liczby znaków: %5d dopełnia z lewej strony, %-6s dopełnia z prawej strony, a %03d dopełnia zerami. %% wyświetla znak procentu.
print(sprintf("[%5d]", 42))
print(sprintf("[%-6s]", "tea"))
print(sprintf("%03d", 7))
print(sprintf("%d%%", 85))Wynik:
[1] "[ 42]"
[1] "[tea ]"
[1] "007"
[1] "85%"sprintf() jest zwektoryzowane: z argumentami wektorowymi zwraca jeden ciąg znaków na każdy element. cat() z sep = "\n" wyświetla każdy ciąg znaków w osobnym wierszu.
items <- c("tea", "cake")
prices <- c(4, 12.5)
lines <- sprintf("%-5s %6.2f", items, prices)
cat(lines, sep = "\n")Wynik:
tea 4.00
cake 12.50Wyzwanie
ŁatwyUzupełnij receipt_line(item, qty, price). Zwróć pozycję, ilość i sumę za pozycję (qty * price) w formacie tea x3 = 13.50: pozycja, spacja, x, po którym następuje ilość, następnie = i suma z dokładnie dwoma miejscami po przecinku.
Dostarczony kod odczytuje pozycję, ilość i cenę (po jednej wartości w każdym wierszu) i wyświetla zwróconą wartość.
Spróbuj swoich sił
receipt_line <- function(item, qty, price) {
# Wpisz tutaj swój kod
""
}
# Dostarczony kod wejścia/wyjścia: pozostaw go bez zmian
input <- suppressWarnings(readLines(file("stdin")))
cat(receipt_line(input[1], as.integer(input[2]), as.numeric(input[3])), sep = "\n")
Ta lekcja zawiera krótki quiz. Zacznij lekcję, żeby na niego odpowiedzieć i śledzić swoje postępy.
Wszystkie lekcje w sekcji Logika i przepływ sterowania
1Łańcuchy znaków w szczegółach
Podciągi za pomocą substr()Formatowanie za pomocą sprintf()Dzielenie i łączenieWyszukiwanie w łańcuchach znakówZastępowanie tekstuPowtórka – kreator nazwy użytkownika4Macierze
Tworzenie macierzyIndeksowanie macierzyPodsumowania wierszy i kolumnDziałania na macierzachPowtórka – plan miejsc10Zaawansowane sterowanie przepływem
Funkcja switch()Wektorowe ifelse()repeat i breakFunkcje rekurencyjnePodsumowanie — klasyfikator ocen2Wyszukiwanie wartości po kluczach
Wyszukiwanie nazwanych elementów wektoraSprawdzanie kluczyDodawanie i usuwanie kluczyIterowanie po nazwachPowtórzenie — giełda5Projekt — dziennik ocen
Dodawanie uczniówZapisywanie ocen3Zbiory i zliczanie
Unikalne wartościOperacje na zbiorachTesty przynależnościZliczanie za pomocą table()Podsumowanie — goście wydarzenia6Funkcje jako wartości
Funkcje anonimowePrzekazywanie funkcjiZwracanie funkcjiDomknięcia ze stanemPowtórka — reguły rabatowe9Ramki danych
Tworzenie ramek danychKolumny i wierszeFiltrowanie wierszyDodawanie i sortowaniePodsumowanie – raport sprzedaży12Projekt – śledzenie wydatków
Rejestrowanie wydatkówŁączne wydatkiPoćwicz samodzielnie: Kompilator R online