Temel işlemler, fonksiyonlar ve veri yapıları için hızlı bir GNU R eğitimi
Giriş
Son iki makalelerde nasıl öğrendik yüklemek ve çalıştırmak Linux işletim sistemine GNU R. Bu makalenin amacı GNU R'ye R programlama dilinin ana nesnelerine giriş içeren hızlı bir referans öğretici sağlamaktır. R'deki temel işlemler, fonksiyonlar ve değişkenler hakkında bilgi edineceğiz. Ayrıca, R veri yapılarını, nesnelerini ve sınıflarını tanıtacağız.
R'de Temel İşlemler
Basit bir matematiksel örnekle başlayalım. Örneğin, R konsolunuza yedi ve üç ekleyerek girin ve sonuç olarak şunu elde ederiz:
> 7+3
[1] 10
Ne olduğunu ve R'yi çalıştırırken kullandığımız terminolojinin ne olduğunu daha ayrıntılı olarak açıklamak için, R yorumlayıcısının R konsoluna girilen bir ifade tarafından döndürülen bir nesneyi yazdırdığını söylüyoruz . Ayrıca R'nin herhangi bir sayıyı bir vektör olarak yorumladığını da belirtmeliyiz. Bu nedenle, sonucumuzun yakınındaki "[1]", verilen satırda görüntülenen ilk değerin dizininin bir olduğu anlamına gelir. Bu, c () fonksiyonu kullanılarak daha uzun bir vektör tanımlanarak daha da netleştirilebilir . Örneğin:
>c(1:100)
[1] 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18
[19] 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36
[37] 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54
[55] 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72
[73] 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90
[91] 91 92 93 94 95 96 97 98 99 100
Vektörler üzerinde işlem yapmak da mümkündür. Örneğin, aşağıdaki gibi iki vektör ekleyebiliriz:
> c(1,5,67,0)+c(0,1.5,6.7,3)
[1] 1.0 6.5 73.7 3.0
Bunun, bu iki vektörün karşılık gelen elemanlarını eklemek anlamına geldiğini unutmayın. Vektörler aynı boyutta değilse, daha kısa vektör birden çok kez tekrarlanır ve daha uzun nesne uzunluğu daha kısa nesne uzunluğunun katı değilse bir uyarı mesajı üretilir:
> c(1,5,8,9)+c(0, 1.4)
[1] 1.0 6.4 8.0 10.4
> c(1,5,8,9)+c(0, 1.4,7)
[1] 1.0 6.4 15.0 9.0
Warning message:
In c(1, 5, 8, 9) + c(0, 1.4, 7) :
longer object length is not a multiple of shorter object length
Ayrıca, R'deki karakter vektörlerini şöyle tanımlayabiliriz:
> c("linuxcareer.com", "R tutorial")
[1] "linuxcareer.com" "R tutorial"
Son olarak, R koduna yorum yapmak için "#" kullanıyoruz. Özellikle,
> # This is a comment in R code
Fonksiyonlar ve Değişkenler
Ayrıca R'de önceden tanımlanmış işlevleri tanımlayabilir veya kullanabiliriz. R'deki çoğu işlev aşağıdaki biçimde oluşturulur.
f(argument1, argument2,...)
Burada "f" fonksiyonun adı ve "argüman1, argüman2, ..." fonksiyonun argümanlarının listesidir. Örneğin, önceden tanımlanmış bazı işlevleri kullanarak
> sin(pi/2)
[1] 1
> log(3)
[1] 1.098612
Yukarıdaki örneğin aksine, R'deki bazı işlevler toplama, güç, eşitlik vb. Operatörler biçimindedir. Örneğin, eşitlik operatörü bir Boole veri türü sonucu (FALSE / TRUE) üretir:
> 4==4
[1] TRUE
Diğer programlama dilinde olduğu gibi R de değişkenleri kullanır. Ödev operatörü burada "<-" (veya "=") burada
> x<-c(1,4,7)
> x+x
[1] 2 8 14
Şimdi "x" vektörünün üçüncü değerine
> x[3]
[1] 7
veya yalnızca yedi yaşından küçük üyeleri getirin:
> x[x<7]
[1] 1 4
Örneğin, bir ve üç maddeyi şu şekilde getirebiliriz:
> x[c(1,3)]
[1] 1 7
Son olarak, R'deki işlevleri sadece buna göre adlandırarak ve sonra R işlevindeki yapıya benzer şekilde bu adla çağırarak tanımlayabilirsiniz. Örneğin:
> myfunction<-function(x,y){x+y}
> myfunction(4,5)
[1] 9
Belirli bir işleve karşılık gelen kodu görmek isterseniz, işlevin adını
> myfunction
function(x,y){x+y}
Veri Yapıları
Bir veri yapısının ilk örneği olarak, matrislerin (dizilerin), yani çok boyutlu vektörlerin nasıl tanımlanacağını gösteririz.
Örneğin, bir diziyi aşağıdaki gibi açıkça tanımlayabiliriz
> a<-array(c(1:24),dim=c(6,4))
> a
[,1] [,2] [,3] [,4]
[1,] 1 7 13 19
[2,] 2 8 14 20
[3,] 3 9 15 21
[4,] 4 10 16 22
[5,] 5 11 17 23
[6,] 6 12 18 24
Veya önce bir vektör oluşturabilir ve matrix () işlevini kullanabiliriz, yani
v<-c(1:24)
> m<-matrix(data=v,nrow=6,ncol=4)
> m
[,1] [,2] [,3] [,4]
[1,] 1 7 13 19
[2,] 2 8 14 20
[3,] 3 9 15 21
[4,] 4 10 16 22
[5,] 5 11 17 23
[6,] 6 12 18 24
İki boyutlu diziden daha fazlasını şu şekilde tanımlamak da mümkündür:
> w<-array(v,dim=c(3,2,4))
> w
, , 1
[,1] [,2]
[1,] 1 4
[2,] 2 5
[3,] 3 6
, , 2
[,1] [,2]
[1,] 7 10
[2,] 8 11
[3,] 9 12
, , 3
[,1] [,2]
[1,] 13 16
[2,] 14 17
[3,] 15 18
, , 4
[,1] [,2]
[1,] 19 22
[2,] 20 23
[3,] 21 24
Örneğin, bir dizinin bir bölümünün değerine başvurmak yine basittir.
> w[1,1,1]
[1] 1
> w[1:2,1:2,1]
[,1] [,2]
[1,] 1 4
[2,] 2 5
Endeksleri atlayarak belirli bir boyutun tüm unsurlarını elde ederiz, örneğin:
> w[,1,1]
[1] 1 2 3
Şimdi, birden fazla temel veri türüne sahip daha karmaşık veri yapılarına bakalım. Bu veri türlerine liste denir . R'deki listeler, çeşitli veri türünde çeşitli nesne seçenekleri içerebilir. Bir listenin her bir bileşenini adlandırabiliriz ve bu nedenle daha sonra bu bileşene adıyla veya konumuna göre başvurabiliriz. Örneğin,
> l<-list(name="linuxcareer.com",visitors="10,000")
> l
$name
[1] "linuxcareer.com"
$visitors
[1] "10,000"
Artık listenin bileşenlerine aşağıda belirtildiği gibi ada veya konuma göre başvurabiliriz
> l$visitors
[1] "10,000"
> l[1]
$name
[1] "linuxcareer.com"
> l[[1]]
[1] "linuxcareer.com"
Bir veri çerçevesi aynı uzunlukta olan çok sayıda adlı vektörler içeren bir liste bulunmaktadır. Veritabanına benzer bir yapıdır. Şimdi bazı döviz kurları (diğer para birimi / USD) içeren bir veri çerçevesi oluşturalım:
> currency<-c("Kroner", "Canadian $", "Hong Kong $", "Rupees")
> date_090812<-c(6.0611,0.9923,7.7556,55.17)
> date_100812<-c(6.0514,0.9917,7.7569,55.18)
> exchangerate<-data.frame(currency,date_090812,date_100812)
> exchangerate
currency date_090812 date_100812
1 Kroner 6.0611 6.0514
2 Canadian $ 0.9923 0.9917
3 Hong Kong $ 7.7556 7.7569
4 Rupees 55.1700 55.1800
Artık bir veri çerçevesinin belirli bir öğesine adıyla başvurabiliriz. Örneğin, 090812'de Hong Kong $ / USD döviz kurunu belirtmemiz gerekebilir. Bunu aşağıdaki şekilde başarabiliriz.
>exchangerate$date_090812[exchangerate$currency=="Hong Kong $"]
[1] 7.7556
Nesneler ve Sınıflar
R, nesne yönelimli bir programlama dilidir. Bu, R'deki her nesnenin bir türe sahip olduğu ve bir sınıfın üyesi olduğu anlamına gelir. Belirli bir nesne için bir sınıfı tanımlamak için aşağıdaki örnekte olduğu gibi class () işlevini kullanırız :
> class(exchangerate)
[1] "data.frame"
> class(myfunction)
[1] "function"
> class(1.07)
[1] "numeric"
R'de tüm işlevler, diğer nesne yönelimli programlama dillerinde olduğu gibi belirli bir sınıfla ilişkilendirilmez. Ancak, belirli bir sınıfla yakından bağlantılı bazı işlevler vardır. Bunlara yöntem denir . R'de genel işlevler adı verilen yöntemler farklı sınıflar için aynı adı paylaşır. Bu, bu tür genel işlevlerin farklı türdeki nesnelere uygulanmasına izin verir. Örneğin, "-" nesnelerin çıkarılması için kullanılan genel bir işlevdir. Sayıları çıkarabilir, ancak aşağıdaki gibi bir tarihten sayı da çıkarabilirsiniz:
> 4-2
[1] 2
> as.Date("2012-09-08")-2
[1] "2012-09-06"
Sonuç
Bu temel R eğitiminin amacı, daha önce hiç R kullanmayan yeni başlayanlara R programlama dilini tanıtmaktı. Bu öğretici ayrıca R istatistiksel yazılımının daha gelişmiş uygulamalarını öğrenecek olanlar için bir referans öğreticisi olarak da yararlı olabilir. Bir sonraki makalede, istatistiksel modellerin nasıl tanımlanacağını ve R ile temel istatistiksel analizin nasıl yapılacağını açıklayacağız. Bu, R yazılımının grafik olasılıklarının gösterimi ile birleştirilecektir.
GNU R eğitim serisi:
Bölüm I: GNU R Tanıtım Dersleri:
- Linux İşletim Sisteminde GNU R'ye Giriş
- GNU R'yi Linux İşletim Sisteminde Çalıştırma
- Temel işlemler, fonksiyonlar ve veri yapıları için hızlı bir GNU R eğitimi
- İstatistiksel modeller ve grafikler için hızlı bir GNU R eğitimi
- GNU R'de paketler nasıl kurulur ve kullanılır
- GNU R'de temel paketler oluşturma
Bölüm II: GNU R Dili: