English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية
数据框(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