English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية

النماذج البيانية بلغة R

数据框(Data frame)可以理解成我们常说的"表格"。

数据框是 R 语言的数据结构,是特殊的二维列表。

数据框每一列都有一个唯一的列名,长度都是相等的,同一列的数据类型需要一致,不同列的数据类型可以不一样。

R 语言数据框使用 data.frame() 函数来创建,语法格式如下:

data.frame(…, row.names = NULL, check.rows = FALSE,
           check.names = TRUE, fix.empty.names = TRUE,
           stringsAsFactors = default.stringsAsFactors())
  • ...: 列向量,可以是任何类型(字符型、数值型、逻辑型),一般以 tag = value 的形式表示,也可以是 value。

  • row.names: 行名,默认为 NULL,可以设置为单个数字、字符串或字符串和数字的向量。

  • check.rows: 检测行的名称和长度是否一致。

  • check.names: 检测数据框的变量名是否合法。

  • fix.empty.names: 设置未命名的参数是否自动设置名字。

  • stringsAsFactors: 布尔值,字符是否转换为因子,factory-fresh 的默认值是 TRUE,可以通过设置选项(stringsAsFactors=FALSE)来修改。

以下创建一个简单的数据框,包含姓名、工号、月薪:

table = data.frame(
    الاسم <- c(\"زانغ سان\",\"ليشي\")
    الرقم التعريفي <- c(\"001\",\"002\")
    الراتب <- c(1000, 2000)
    
)
print(table) # 查看 table 数据

الناتج من تنفيذ الكود أعلاه هو:

الاسم رقم العملة الراتب الشهري
1 张三  001 1000
2 李四  002 2000

数据框的数据结构可以通过 str() 函数来展示:

table = data.frame(
    الاسم <- c(\"زانغ سان\",\"ليشي\")
    الرقم التعريفي <- c(\"001\",\"002\")
    الراتب <- c(1000, 2000)
)
# 获取数据结构
str(table)

الناتج من تنفيذ الكود أعلاه هو:

'data.frame':   2 obs. of  3 variables:
 $ 姓名: chr  "张三" "李四"
 $ 工号: chr  "001" "002"
 $ الراتب: num 1000 2000

summary() يمكن عرض معلومات تلخيص جدول البيانات:

table = data.frame(
    الاسم <- c(\"زانغ سان\",\"ليشي\")
    الرقم التعريفي <- c(\"001\",\"002\")
    الراتب <- c(1000, 2000)
    
)
# عرض التلخيص
print(summary(table))

الناتج من تنفيذ الكود أعلاه هو:

الاسم                                                                               الرقم التعريفي                                                                       الراتب     
الطول:2                                                                               الطول:2                                                                               أصغر قيمة:1000  
النوع:حرفيًا    النوع:حرفيًا    الربع الأول:1250  
النمط:حرفيًا    النمط:حرفيًا    الوسط:1500  
                                      الوسط:1500  
                                      الربع الثالث:1750  
                                      أكبر قيمة:2000

يمكننا أيضًا استخراج الأعمدة المحددة:

table = data.frame(
    الاسم <- c(\"زانغ سان\",\"ليشي\")
    الرقم التعريفي <- c(\"001\",\"002\")
    الراتب <- c(1000, 2000)
)
# استخراج الأعمدة المحددة
result <- data.frame(table$اسم,table$راتب)
print(result)

الناتج من تنفيذ الكود أعلاه هو:

table.الاسم table.الراتب
1                               زانغ سان                                       1000
2                               ليشي                                       2000

الشكل التالي يظهر السطور الأولى:

table = data.frame(
    الاسم = c("صغير", "صغير", "صغير"),
    رقم العملة = c("001","002","003"),
    الراتب الشهري = c(1000, 2000,3000)
)
print(table)
# استخراج السطور الأولى
print("---إخراج السطور الأولى----")
result <- table[1:2,]
print(result)

الناتج من تنفيذ الكود أعلاه هو:

الاسم رقم العملة الراتب الشهري
1 张三  001 1000
2 李四  002 2000
3 王五  003 3000
[1] "---إخراج السطور الأولى----"
  الاسم رقم العملة الراتب الشهري
1 张三  001 1000
2 李四  002 2000

يمكننا قراءة بيانات الصف المحددة باستخدام شكل شبيه بالتوازي، فيما يلي نقرأ بيانات السطر 2 و 3 من الصف 1 و 2:

table = data.frame(
    الاسم = c("صغير", "صغير", "صغير"),
    رقم العملة = c("001","002","003"),
    الراتب الشهري = c(1000, 2000,3000)
)
# قراءة البيانات من السطر 2 و 3 من الصف 1 و 2
result <- table[c(2,3),c(1,2)]
print(result)

الناتج من تنفيذ الكود أعلاه هو:

الاسم الرقم التعريفي
2 ليشي
3 وван و

توسيع جدول البيانات

يمكننا توسيع جدول البيانات الحالي، في هذا المثال نضيف عمود القسم:

table = data.frame(
    الاسم = c("صغير", "صغير", "صغير"),
    رقم العملة = c("001","002","003"),
    الراتب الشهري = c(1000, 2000,3000)
)
# إضافة عمود القسم
table$قسم <- c(\"التحرير\",\"التكنولوجيا\",\"التدوين\")
print(table)

الناتج من تنفيذ الكود أعلاه هو:

الاسم الرقم التعريفي الراتب القسم
1 زانغ سان
2 ليشي
3 وван و

يمكننا استخدام cbind() الوظيفة تجمع عدة مصفوفات في جدول بيانات واحد:

# إنشاء مصفوفة
sites <- c(\"Google\",\"w3codebox\",\"Taobao\")
likes <- c(222,111,123)
url <- c("www.google.com","ar.oldtoolbag.com","www.taobao.com")
# دمج المتغيرات البحتة في نموذج بيانات
addresses <- cbind(sites,likes,url)
# عرض نموذج البيانات
print(addresses)

الناتج من تنفيذ الكود أعلاه هو:

     المواقع   الإعجابات الرابط             
[1,] "Google" "222" "www.google.com"
[2,] "w3codebox" "111" "ar.oldtoolbag.com"
[3,] "Taobao" "123" "www.taobao.com"

إذا كنت تريد دمج نماذج البيانات يمكنك استخدام rbind() الوظيفة:

table = data.frame(
    الاسم = c("صغير", "صغير", "صغير"),
    رقم العملة = c("001","002","003"),
    الراتب الشهري = c(1000, 2000,3000)
)
newtable = data.frame(
    الاسم = c("صغير", "صغير"),
    رقم العملة = c("101","102"),
    الراتب الشهري = c(5000, 7000)
)
# دمج نماذج البيانات
result <- rbind(table,newtable)
print(result)

الناتج من تنفيذ الكود أعلاه هو:

الاسم رقم العملة الراتب الشهري
1 张三  001 1000
2 李四  002 2000
3 王五  003 3000
4 صغير  101 5000
5 صغير  102 7000