Podstawy konwersji typów
Część sekcji Podstawy ścieżki R w Coddy. Lekcja 30 z 78.
Jak wspomniano w poprzedniej lekcji, readline() zawsze zwraca ciąg znaków. Jeśli użytkownik wpisze „25”, otrzymasz tekst "25", a nie liczbę 25. To ważne, ponieważ nie można wykonywać obliczeń na tekście.
Aby przekształcić ciąg znaków w liczbę, użyj as.numeric():
input <- "42"
number <- as.numeric(input)
cat(number + 8, "\n") # Wynik: 50To niezbędne podczas pracy z danymi wprowadzanymi przez użytkownika. Oto typowy schemat, którego będziesz używać:
age_text <- readline()
age <- as.numeric(age_text)
cat("In 10 years, you will be", age + 10, "\n")Możesz też dokonać konwersji w przeciwnym kierunku za pomocą as.character():
number <- 100
text <- as.character(number)
cat("The value is:", text, "\n")Konwertowanie liczb na znaki jest przydatne, gdy chcesz połączyć je z innym tekstem lub gdy funkcja wymaga danych wejściowych w postaci znaków. Te funkcje konwertujące pozwalają przechodzić między typami danych, gdy tylko Twój program tego potrzebuje.
Wyzwanie
ŁatwyWczytaj dwie wartości liczbowe, wykonaj obliczenie i wyświetl wynik z etykietą.
Otrzymasz dwa wejścia:
- Cenę (jako ciąg znaków)
- Ilość (jako ciąg znaków)
Przekonwertuj oba wejścia na wartości liczbowe za pomocą as.numeric(), a następnie oblicz całkowity koszt, mnożąc cenę przez ilość.
Wyświetl wynik w następującym formacie:
Total: [result]Użyj cat(), aby wyświetlić wynik, i dodaj na końcu znak nowej linii \n.
Na przykład, jeśli wejściami są 15.50 i 4, wynikiem powinno być:
Total: 62Spróbuj swoich sił
# Odczytaj dane wejściowe
con <- file("stdin", "r")
price_str <- suppressWarnings(readLines(con, n = 1))
quantity_str <- suppressWarnings(readLines(con, n = 1))
close(con)
# TODO: Napisz swój kod poniżej
# 1. Przekształć price_str i quantity_str na wartości liczbowe za pomocą as.numeric()
# 2. Oblicz całkowity koszt (price * quantity)
# 3. Wyświetl wynik za pomocą cat() w formacie "Total: [result]\n"Ta lekcja zawiera krótki quiz. Zacznij lekcję, żeby na niego odpowiedzieć i śledzić swoje postępy.
Wszystkie lekcje w sekcji Podstawy
4Operatory, część 2
Operatory logiczne (AND, OR)Operatory logiczne, część 2 (NOT)Powtórka — prosta logikaLogika wektoryzowana, część 1Logika wektoryzowana, część 27Kalkulator podziału rachunku
Wiadomość powitalnaPobieranie danych od użytkownika10FizzBuzz z niespodzianką
Omówienie gryFunkcja FizzBuzz2Zmienne i typy danych
Liczbowy typ danychCałkowity typ danychZnakowy typ danychLogiczny typ danychSprawdzanie typów danychKonwencje nazewnictwaBrakujące wartości: NAPodsumowanie – tworzenie zmiennych8Pętle
Pętla forPętla whilePrzerwijNastępna iteracja (continue)Powtórka — silniaGenerowanie sekwencji (seq, :)Pętle zagnieżdżonePowtórka — dynamiczne wprowadzanie danych3Operatory, część 1
Operatory arytmetyczneDzielenie całkowite i moduloOperatory przypisaniaPowtórka — prosta matematykaOperatory porównania6Podstawowe wejście/wyjście
Wyświetlanie danychCat jako wyjścieWyjście z użyciem zmiennychOdczyt danych wejściowych za pomocą readline()Podstawy konwersji typówPowtórka — kalkulator wiekuPowtórka — prawda czy fałsz9Funkcje
Deklarowanie funkcjiArgumenty funkcjiWartości zwracanePowtórzenie — funkcja SigmaPowtórzenie — funkcja walidującaDomyślne wartości parametrówPoćwicz samodzielnie: Kompilator R online