دليل لتطبيق () وlapply () وsapply () وtapply () في r


يشرح هذا البرنامج التعليمي الاختلافات بين وظائف R المضمنة application() و sapply() و lapply() و Tapply() بالإضافة إلى أمثلة عن متى وكيف يتم استخدام كل وظيفة.

يتقدم()

استخدم الدالة Apply() عندما تريد تطبيق دالة على صفوف أو أعمدة المصفوفة أو إطار البيانات.

بناء الجملة الأساسي للوظيفة application() هو:

تطبيق (X، الهامش، المرح)

  • X هو اسم المصفوفة أو كتلة البيانات
  • يشير الهامش إلى البعد المطلوب تنفيذ العملية (1 = الصف، 2 = العمود)
  • FUN هي العملية المحددة التي تريد تنفيذها (على سبيل المثال الحد الأدنى والحد الأقصى والمجموع والمتوسط وما إلى ذلك)

يوضح التعليمة البرمجية التالية عدة أمثلة لتطبيق() في العمل.

 #create a data frame with three columns and five rows
data <- data.frame(a = c(1, 3, 7, 12, 9),
                   b = c(4, 4, 6, 7, 8),
                   c = c(14, 15, 11, 10, 6))
data

#abc
#1 1 4 14
#2 3 4 15
#3 7 6 11
#4 12 7 10
#5 9 8 6

#find the sum of each row
apply(data, 1, sum)

#[1] 19 22 24 29 23

#find the sum of each column
apply(data, 2, sum)

#abc
#32 29 56 

#find the mean of each row
apply(data, 1, mean)

#[1] 6.333333 7.333333 8.000000 9.666667 7.666667

#find the mean of each column, rounded to one decimal place
round(apply(data, 2, mean), 1)

#abc
#6.4 5.8 11.2 

#find the standard deviation of each row
apply(data, 1, sd)

#[1] 6.806859 6.658328 2.645751 2.516611 1.527525

#find the standard deviation of each column
apply(data, 2, sd)

#abc
#4.449719 1.788854 3.563706 

يتقدم()

استخدم الدالة lapply() عندما تريد تطبيق دالة على كل عنصر في القائمة أو المتجه أو إطار البيانات والحصول على قائمة نتيجة لذلك.

بناء الجملة الأساسي للدالة lapply() هو:

لابلي (X، FUN)

  • X هو اسم القائمة أو المتجه أو إطار البيانات
  • FUN هي العملية المحددة التي تريد تنفيذها

يوضح التعليمة البرمجية التالية عدة أمثلة لاستخدام lapply() على الأعمدة في إطار البيانات.

 #create a data frame with three columns and five rows
data <- data.frame(a = c(1, 3, 7, 12, 9),
                   b = c(4, 4, 6, 7, 8),
                   c = c(14, 15, 11, 10, 6))
data

#abc
#1 1 4 14
#2 3 4 15
#3 7 6 11
#4 12 7 10
#5 9 8 6

#find mean of each column and return results as a list
apply(data, mean)

#$a
# [1] 6.4
#
# $b
# [1] 5.8
#
# $c
# [1] 11.2

#multiply values in each column by 2 and return results as a list
lapply(data, function(data) data*2)

#$a
# [1] 2 6 14 24 18
#
# $b
# [1] 8 8 12 14 16
#
# $c
# [1] 28 30 22 20 12

يمكننا أيضًا استخدام الدالة lapply() ‎ لإجراء العمليات على القوائم. توضح الأمثلة التالية كيفية القيام بذلك.

 #create a list
x <- list(a=1, b=1:5, c=1:10) 
x

#$a
# [1] 1
#
# $b
# [1] 1 2 3 4 5
#
# $c
# [1] 1 2 3 4 5 6 7 8 9 10

#find the sum of each element in the list
lapply(x, sum)

#$a
# [1] 1
#
# $b
# [1] 15
#
# $c
#[1]55

#find the mean of each element in the list
lapply(x, mean)

#$a
# [1] 1
#
# $b
# [1] 3
#
# $c
# [1] 5.5

#multiply values of each element by 5 and return results as a list
lapply(x, function(x) x*5)

#$a
# [1] 5
#
# $b
# [1] 5 10 15 20 25
#
# $c
# [1] 5 10 15 20 25 30 35 40 45 50

يتقدم()

استخدم الدالة sapply() عندما تريد تطبيق دالة على كل عنصر في قائمة أو متجه أو إطار بيانات وبالتالي الحصول على متجه بدلاً من القائمة.

بناء الجملة الأساسي للدالة sapply() هو:

تطبيق (X، متعة)

  • X هو اسم القائمة أو المتجه أو إطار البيانات
  • FUN هي العملية المحددة التي تريد تنفيذها

يوضح التعليمة البرمجية التالية عدة أمثلة لاستخدام sapply() على الأعمدة في إطار البيانات.

 #create a data frame with three columns and five rows
data <- data.frame(a = c(1, 3, 7, 12, 9),
                   b = c(4, 4, 6, 7, 8),
                   c = c(14, 15, 11, 10, 6))
data

#abc
#1 1 4 14
#2 3 4 15
#3 7 6 11
#4 12 7 10
#5 9 8 6

#find mean of each column and return results as a vector
sapply(data, mean)

#abc
#6.4 5.8 11.2 

#multiply values in each column by 2 and return results as a matrix
sapply(data, function(data) data*2)

#abc
#[1,] 2 8 28
#[2,] 6 8 30
#[3,] 14 12 22
#[4,] 24 14 20
#[5,] 18 16 12

يمكننا أيضًا استخدام sapply() ‎ لإجراء العمليات على القوائم. توضح الأمثلة التالية كيفية القيام بذلك.

 #create a list
x <- list(a=1, b=1:5, c=1:10) 
x

#$a
# [1] 1
#
# $b
# [1] 1 2 3 4 5
#
# $c
# [1] 1 2 3 4 5 6 7 8 9 10

#find the sum of each element in the list
sapply(x, sum)

#abc
#1 15 55 

#find the mean of each element in the list
sapply(x, mean)

#abc
#1.0 3.0 5.5

مقبض()

استخدم الدالة Tapply() عندما تريد تطبيق دالة على مجموعات فرعية من متجه ويتم تعريف المجموعات الفرعية بواسطة متجه آخر، عادةً ما يكون عاملاً.

بناء الجملة الأساسي للدالة Tapply() هو:

اضغط على (X، INDEX، FUN)

  • X هو اسم الكائن، وعادةً ما يكون متجهًا
  • إندكس هي قائمة من عامل واحد أو أكثر
  • FUN هي العملية المحددة التي تريد تنفيذها

يعرض التعليمة البرمجية التالية مثالاً لاستخدام Tapply() على مجموعة بيانات R المضمنة للقزحية .

 #view first six lines of iris dataset
head(iris)

# Sepal.Length Sepal.Width Petal.Length Petal.Width Species
#1 5.1 3.5 1.4 0.2 setosa
#2 4.9 3.0 1.4 0.2 setosa
#3 4.7 3.2 1.3 0.2 setosa
#4 4.6 3.1 1.5 0.2 setosa
#5 5.0 3.6 1.4 0.2 setosa
#6 5.4 3.9 1.7 0.4 setosa

#find the max Sepal.Length of each of the three Species
tapply(iris$Sepal.Length, iris$Species, max)

#setosa versicolor virginica 
#5.8 7.0 7.9 

#find the mean Sepal.Width of each of the three Species
tapply(iris$Sepal.Width, iris$Species, mean)

# setosa versicolor virginica 
# 3,428 2,770 2,974

#find the minimum Petal.Width of each of the three Species
tapply(iris$Petal.Width, iris$Species, min)

# setosa versicolor virginica 
#0.1 1.0 1.4 

Add a Comment

ایمئیل یایینلانمایاجاق ایسته‎نیله‎ن بوشلوقلار خاللانمیشدیر *