R语言数据框架操作详解
创作时间:
作者:
@小白创作中心
R语言数据框架操作详解
引用
1
来源
1.
https://geek-docs.com/r-language/r-tutorials/g_dataframe-operations-in-r.html
数据框架(DataFrame)是R语言中用于存储和操作表格数据的核心数据结构。本文将详细介绍数据框架的各种操作,包括创建、访问、编辑、添加和删除行/列等。通过具体的代码示例,帮助读者掌握数据框架的基本使用方法。
数据框架概述
数据框架是R语言中最常用的数据对象之一,用于存储表格数据。与矩阵不同,数据框架的每一列可以包含不同类型的变量。数据框架主要由三部分组成:数据、行和列。
创建数据框架
使用向量创建数据框架
在R语言中,可以使用data.frame()函数从向量创建数据框架。以下是一个示例:
# 创建向量
Name <- c("Amiya", "Raj", "Asish")
Language <- c("R", "Python", "Java")
Age <- c(22, 25, 45)
# 使用data.frame()函数创建数据框架
df <- data.frame(Name, Language, Age)
# 打印数据框架
print(df)
输出结果:
Name Language Age
1 Amiya R 22
2 Raj Python 25
3 Asish Java 45
使用文件中的数据创建数据框架
数据框架也可以通过导入文件中的数据来创建。常用的函数有read.table()和read.csv()。
# 从CSV文件创建数据框架
newDF <- read.csv("FileName.csv")
访问行和列
访问数据框架中的行和列使用df[val1, val2]的语法,其中val1表示行,val2表示列。
行选择示例
# 创建数据框架
df <- data.frame(
"Name" = c("Amiya", "Raj", "Asish"),
"Language" = c("R", "Python", "Java"),
"Age" = c(22, 25, 45)
)
# 打印数据框架
print(df)
# 访问第一行和第二行
print(df[1:2, ])
输出结果:
Name Language Age
1 Amiya R 22
2 Raj Python 25
3 Asish Java 45
Accessing first and second row
Name Language Age
1 Amiya R 22
2 Raj Python 25
列选择示例
# 创建数据框架
df <- data.frame(
"Name" = c("Amiya", "Raj", "Asish"),
"Language" = c("R", "Python", "Java"),
"Age" = c(22, 25, 45)
)
# 打印数据框架
print(df)
# 访问第一列和第二列
print(df[, 1:2])
输出结果:
Name Language Age
1 Amiya R 22
2 Raj Python 25
3 Asish Java 45
Accessing first and second column
Name Language
1 Amiya R
2 Raj Python
3 Asish Java
选择数据框架的子集
可以使用subset()函数根据某些条件创建数据框架的子集。
# 创建数据框架
df <- data.frame(
"Name" = c("Amiya", "Raj", "Asish"),
"Language" = c("R", "Python", "Java"),
"Age" = c(22, 25, 45)
)
# 打印原始数据框架
print(df)
# 根据条件选择子集
newDf <- subset(df, Name =="Amiya"|Age>30)
# 打印子集
print(newDf)
输出结果:
Name Language Age
1 Amiya R 22
2 Raj Python 25
3 Asish Java 45
After Selecting the subset of the data frame
Name Language Age
1 Amiya R 22
3 Asish Java 45
编辑数据框架
通过直接赋值编辑数据框架
# 创建数据框架
df <- data.frame(
"Name" = c("Amiya", "Raj", "Asish"),
"Language" = c("R", "Python", "Java"),
"Age" = c(22, 25, 45)
)
# 打印原始数据框架
print(df)
# 直接赋值修改数据框架
df[[3]][3] <- 30
# 打印修改后的数据框架
print(df)
输出结果:
Before editing the dataframe
Name Language Age
1 Amiya R 22
2 Raj Python 25
3 Asish Java 45
After edited the dataframe
Name Language Age
1 Amiya R 22
2 Raj Python 25
3 Asish Java 30
使用edit()命令编辑数据框架
创建一个空数据框架:
myTable <- data.frame()使用
edit()函数启动编辑器:myTable <- edit(myTable)在弹出的窗口中编辑数据框架。
检查编辑后的数据框架:
print(myTable)
向数据框架添加行和列
添加额外的行
使用rbind()函数添加新行:
# 创建数据框架
df <- data.frame(
"Name" = c("Amiya", "Raj", "Asish"),
"Language" = c("R", "Python", "Java"),
"Age" = c(22, 25, 45)
)
# 打印原始数据框架
print(df)
# 使用rbind()添加新行
newDf <- rbind(df, data.frame(Name = "Sandeep",
Language = "C",
Age = 23))
# 打印添加新行后的数据框架
print(newDf)
输出结果:
Before adding row
Name Language Age
1 Amiya R 22
2 Raj Python 25
3 Asish Java 45
After Added a row
Name Language Age
1 Amiya R 22
2 Raj Python 25
3 Asish Java 45
4 Sandeep C 23
添加额外的列
使用cbind()函数添加新列:
# 创建数据框架
df <- data.frame(
"Name" = c("Amiya", "Raj", "Asish"),
"Language" = c("R", "Python", "Java"),
"Age" = c(22, 25, 45)
)
# 打印原始数据框架
print(df)
# 使用cbind()添加新列
newDf <- cbind(df, Rank=c(3, 5, 1))
# 打印添加新列后的数据框架
print(newDf)
输出结果:
Before adding column
Name Language Age
1 Amiya R 22
2 Raj Python 25
3 Asish Java 45
After Added a column
Name Language Age Rank
1 Amiya R 22 3
2 Raj Python 25 5
3 Asish Java 45 1
向数据框架添加新的变量
使用dplyr包的mutate()函数可以在现有变量的基础上添加新的变量。
# 加载dplyr包
library(dplyr)
# 创建数据框架
df <- data.frame(
"Name" = c("Amiya", "Raj", "Asish"),
"Language" = c("R", "Python", "Java"),
"Age" = c(22, 25, 45)
)
# 打印原始数据框架
print(df)
# 使用mutate()添加新变量
newDf <- mutate(df, log_Age = log(Age))
# 打印添加新变量后的数据框架
print(newDf)
输出结果:
Original Dataframe
Name Language Age
1 Amiya R 22
2 Raj Python 25
3 Asish Java 45
After creating extra variable column
Name Language Age log_Age
1 Amiya R 22 3.091042
2 Raj Python 25 3.218876
3 Asish Java 45 3.806662
从数据框架中删除行和列
要删除行或列,可以在行或列索引前添加负号。
# 创建数据框架
df <- data.frame(
"Name" = c("Amiya", "Raj", "Asish"),
"Language" = c("R", "Python", "Java"),
"Age" = c(22, 25, 45)
)
# 打印原始数据框架
print(df)
# 删除第三行和第二列
newDF <- df[-3, -2]
# 打印删除行/列后的数据框架
print(newDF)
输出结果:
Before deleting the 3rd row and 2nd column
Name Language Age
1 Amiya R 22
2 Raj Python 25
3 Asish Java 45
After Deleted the 3rd row and 2nd column
Name Age
1 Amiya 22
2 Raj 25
通过以上详细的操作示例,读者可以全面掌握R语言中数据框架的基本使用方法,为后续的数据分析和处理打下坚实的基础。
热门推荐
拖延症,还影响健康
心理学揭秘:为何你总是拖延?
厨房区域设计的终极指南:效率与美学的结合
中国黄金荣获“年度责任践行ESG传播先锋”,树立行业新标杆
“小空间大变换:原木风格书房改造心得与注意事项”
民法典关于婚前财产是怎么规定的
济南黄河大桥新桥通车!25年收费引热议
"凯叔讲故事"版权保护的胜利之路
上班让你好郁闷?按摩6穴位来放松身心!
解锁身体的秘密宝藏—太冲穴位
年货采购热潮起,食品一店年味浓
冬季避寒首选:三亚必打卡景点推荐
南京至三亚特价机票动态:航班时刻表、票价及优惠活动全攻略
九寨沟旅游必去十大景点:人间仙境的绝美风光
冬天金鱼多久喂一次食?
成都地名溯源:堰名都江天府源 为什么叫都江堰?
游戏化教学让数学更有趣:从“神秘袋”到“找朋友”
奇数的神奇性质:从数学运算到现实应用
奇偶排序算法:多处理器时代的高效排序神器
激活红河哈尼梯田的遗产价值
秦始皇的未解之谜,凯叔为你揭秘
白掌养护秘籍:让你家绿意盎然
白掌养护秘籍,让你家绿植爆棚
白掌繁殖技巧大揭秘,你get了吗?
新年祝福+社交技巧:让温暖的友谊点亮你的2025
央视那些好看却停播节目,《同一首歌》成经典,《走近科学》成大忽悠
《凯叔红楼梦》:让孩子在趣味中感受经典
防城港越南芒街一日旅游
江苏大运河国潮设计,你最爱哪一款?
李白笔下的大运河:一条流淌千年的文化长河