R (Ben bir Python arka planından geliyorum) için yeniyim ve hala apply
işlevlerini nasıl/ne zaman uygulayacağını anlamakla ilgili bazı sorunlar yaşıyorum (gecikmeli, sapply, iç içe döngüler yerine rapply, vb. Örnek olarak, bir listenin her bir elemanını başka bir listenin her elemanı ile karşılaştıran FUN fonksiyonunu gerçekleştirmek istediğini varsayalım. Başka bir deyişleR - İç içe döngü yerine 'uygula' kullanmanın temel anlayışı
n = 1
m = 1
sameList = NULL
for(i in 1:length(list1)){
for(j in 1:length(list2)){
if(list1[n]==list2[m]){
sameList<-c(sameList, list1[n]}
n = n+1
}
m = m+1
}
, her listenin her elemanını üzerinde dolaşır bazı iç içe döngü: Ben çizgisinde bir şeyler yazmak istiyorum.
Öğrenmekte olduğum şey, bir listenin orta döngüsünün birleştirilmesi, R'de çok verimsiz bir işlemdir, bu nedenle apply
kullanılmasının nedeni budur.
Yukarıdaki örnek kodu değiştirmek için apply
(veya herhangi bir sürümü) nasıl kullanılır?
, muhtemelen yararlı olacaktır. Ayrıca, belki bu son blog yazısı yararlıdır: http://www.r-bloggers.com/functional-programming-in-r/ (Daha sonra döngülere bakar) – Froom2
Bu "listeler" in her ikisini de çağırıyorsunuz ama Onları vektörlermiş gibi altüst ediyorsunuz. Lütfen R soruları sorulurken dikkatli olun. "Liste", belirli bir anlam ifade eder ve çoğu zaman, "vektör" veya "atomik vektör" ten farklı olarak, R. – joran
'da bir şey ifade eder, sadece bir tahmin işlevini istediğinizi düşünmüyorum. Dış (1: 5,1: 5, FUN = "==") 'yi çalıştırmayı denemek ve bunun sizin için daha anlamlı olup olmadığını görmek. – joran