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语言中数据框架的基本使用方法,为后续的数据分析和处理打下坚实的基础。
热门推荐
工程签证是什么?其作用与类型定义详解
3000万只宠物的养老,难倒了年轻人
看看我的家乡有多美
幽门螺旋杆菌怎么治疗?吃幽门杆菌的药不能吃什么?
全面解析氨气试验的重要性与应用,助您更好地理解实验检测
网红“祁天道”被行拘,千万粉丝网红缘何频频“翻车”?
辞职申请书范文:6种场景下的标准模板
投屏技巧大揭秘:从准备到解决卡顿,一文教你掌握全流程
乒乓世界杂志8月刊,探索乒乓球的全球魅力与技术革新
合理避税:个人房屋租赁的税务策略
你真的把握好人际关系的界限了吗?
高速公路综合能效管理:从理论到实践的跨越
国内客户不等AC352了,直接买H175,国产民用直升机任重道远
上下班途中认定工伤的4个条件法律规定
女生健身减脂如何饮食
苹果监控全球WiFi热点,一招可破解
车险结案赔偿款未到账的法律规定与应对策略
沈阳高压电机修理改造:确保设备运行的关键
科学与艺术深度融合,这个展览开启跨越五亿年的 “追光之旅”
案例分享丨高校升级百G校园网方案
如何来改善贫血
今晚,国足战澳大利亚!多名主力缺阵,“输球正常、拿分就算赚到”,后面两场更关键→
从巅峰到谷底:迈克·泰森的职业起伏
探索AI技术在动画制作中的全面应用与未来发展
大人的童话:《小王子》
隐私权纠纷判决案例:业委会公布起诉状被判侵犯隐私
馒头冷冻起来能保存多久?在吃之前需要注意什么?
玻璃酸钠:美容圣品还是健康隐患?
OpenAI ChatGPT全球宕机事件分析
抖音短视频拍摄技巧:多种模式与创作建议详解