714R Sanal Sınıfı

Enerji Sistemleri için R ile Veri Analizi ve Görselleştirme

Doç. Dr. Hasan Sarptaş
Ege Üniversitesi, Güneş Enerjisi ABD. Yüksek Lisans Dersi

▄▀ Giriş

 

R'da Veri Tipleri

R'daki veri tipleri, bir değişkende saklanan bilginin türünü belirtir ve hesaplamalar ile analizler sırasında nasıl davranacağını belirler. Verinin bellekte nasıl temsil edildiğini ve fonksiyonların bunu nasıl yorumladığını tanımlar. R dinamik tipli bir dildir, yani bir değer oluşturulduğunda veri tipi otomatik olarak atanır.

1. Sayısal (Numeric) Veri Tipi

R'de ondalık nokta içeren sayılar numeric olarak adlandırılır. Bu, sayılar için varsayılan veri tipidir ve gerçek sayıları (reel sayıları) saklamak ve hesaplamalar yapmak için kullanılır. Sayısal değerler çift hassasiyetli kayan nokta formatında saklanır, bu da ondalık sayıların doğru temsilini sağlar.

R bir sayıyı değişkene atadığında, onu en az iki ondalık basamaklı double (ondalık) tipine dönüştürür. Ondalık olmayan sayılar açıkça belirtilmedikçe gerçek tamsayı değildir.

# Ondalık içeren sayısal değişken
x <- 5.6
print(class(x))
print(typeof(x))

# Ondalık olmayan sayı
y <- 5
print(class(y))
print(typeof(y))

# y'nin tamsayı olup olmadığını kontrol et
print(is.integer(y))
Çıktı
[1] "numeric"
[1] "double"
[1] "numeric"
[1] "double"
[1] FALSE

2. Tamsayı (Integer) Veri Tipi

Tamsayı veri tipi, ondalık içermeyen sayıları saklamak için kullanılır. Tamsayılar as.integer() fonksiyonu kullanılarak veya sayının sonuna L eki eklenerek oluşturulur. Bu, R'ye değeri varsayılan double yerine tamsayı olarak saklamasını söyler.

# as.integer() ile tamsayı oluşturma
x <- as.integer(5)
print(class(x))
print(typeof(x))

# L eki ile tamsayı oluşturma
y <- 5L
print(class(y))
print(typeof(y))
Çıktı
[1] "integer"
[1] "integer"
[1] "integer"
[1] "integer"

3. Mantıksal (Logical) Veri Tipi

Mantıksal veri tipi, R'de TRUE veya FALSE boolean değerlerini temsil eder. Mantıksal değerler genellikle değişkenler arası karşılaştırmalarla veya doğrudan boolean atamasıyla oluşturulur. Karar verme, koşullu ifadeler ve veri filtrelemede kullanılır.

# Karşılaştırma ile mantıksal değer oluşturma
x <- 4
y <- 3
z <- x > y
print(z)
print(class(z))
print(typeof(z))

# Doğrudan atama ile mantıksal değer
logi <- FALSE
print(class(logi))
print(typeof(logi))
Çıktı
[1] TRUE
[1] "logical"
[1] "logical"
[1] "logical"
[1] "logical"

4. Karmaşık (Complex) Veri Tipi

Karmaşık veri tipi, hem gerçek hem sanal bileşene sahip sayıları saklar. Sanal kısım i eki ile belirtilir. Bilimsel hesaplamalar, sinyal işleme ve matematiksel modellemede kullanılır.

# Karmaşık sayı oluşturma
x <- 4 + 3i
print(class(x))
print(typeof(x))
Çıktı
[1] "complex"
[1] "complex"

5. Karakter (Character) Veri Tipi

Karakter veri tipi, metinleri (harfler, sayılar, özel semboller) saklamak için kullanılır. Karakter değerleri (string) tek (') veya çift (") tırnak içinde yazılır. İsimler, etiketler, mesajlar ve veri setlerindeki metinsel bilgiler için yaygındır.

# Karakter değişkeni oluşturma
char <- "Geeksforgeeks"
print(class(char))
print(typeof(char))
Çıktı
[1] "character"
[1] "character"

6. Ham (Raw) Veri Tipi

Ham veri tipi, bayt seviyesinde veri saklamak ve işlemek için kullanılır. İşlenmemiş ikili değerleri temsil eder; dosya işlemleri, ağ verileri veya ikili protokoller için faydalıdır. Ham vektörler 00 ile FF (onaltılık) aralığındaki elemanlardan oluşur.

# Ham vektör oluşturma
x <- as.raw(c(0x1, 0x2, 0x3, 0x4, 0x5))
print(x)
Çıktı
[1] 01 02 03 04 05

R'da Veri Tipi Doğrulama

R, bir nesnenin veri tipini doğrulamak için is. önekiyle başlayan fonksiyonlar sağlar. Nesnenin tipi eşleşirse TRUE, değilse FALSE döner.

Sözdizimi: is.veri_tipi(nesne)

print(is.logical(TRUE))
print(is.integer(3L))
print(is.numeric(10.5))
print(is.complex(1+2i))
print(is.character("12-04-2020"))
print(is.integer("a"))
print(is.numeric(2+3i))
Çıktı
[1] TRUE
[1] TRUE
[1] TRUE
[1] TRUE
[1] TRUE
[1] FALSE
[1] FALSE

R'da Veri Tipi Dönüşümü

Veri tipi dönüşümü (coercion), bir nesneyi bir tipden diğerine değiştirmektir. R tarafından otomatik yapılabilir veya programcı tarafından manuel olarak gerçekleştirilebilir.

Sözdizimi: as.veri_tipi(nesne)

print(as.numeric(TRUE))
print(as.complex(3L))
print(as.logical(10.5))
print(as.character(1+2i))
print(as.numeric("12-04-2020"))
Çıktı
[1] 1

[1] 3+0i

[1] TRUE

[1] "1+2i"

Warning message in print(as.numeric("12-04-2020")):
“NAs introduced by coercion”

[1] NA