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语言中数据框架的基本使用方法,为后续的数据分析和处理打下坚实的基础。
热门推荐
甲钴胺片有忌口吗
高中生喝咖啡好吗
姜能温中发表散寒 冬季养生三则姜粥方
2025年最新发布非全日制研究生招生专业招生信息
侯宗原国学风水建筑
功在世界 心怀家国——科学巨擘杨振宁
Matplotlib库简介及函数说明
中国电子烟行业深度分析:市场洗牌后的健康发展之路
解读心血管钙化:对寿命的影响及防治策略
陈列师的岗位职责与作用
柯南火了30年,真相不止一个
八字命理中的“伤官驾杀”:含义、特点与影响
百慕大三角谜团:消失的飞机轮船,科学家们的多种猜想能否解开真相?
如何通过质量管理提升顾客体验
都是黑茶,普洱熟茶、安化黑茶、六堡茶区别在哪?
三项第一!北京继续领跑“机遇之城”榜单
中秋节起源探秘:传统习俗与历史文化背景的探讨
1050ti功耗多少w 1050ti显卡参数一览
牛腩,到底是牛身上哪个部分?很多厨师都不清楚
守护全球候鸟迁徙通道 见证人与自然和谐共生
深度学习和大模型原理与实战:从基础到前沿应用
如何衡量人才培养模式创新的效果?
中国邮政挂号信:安全可靠的官方寄递服务详解与应用指南
重庆消费者反映:网购平台部分品类商品无法使用“国补”|云投诉
硫酸镁使用的正确方法
手机摄影技术:拍摄视频的技巧与应用场景
一个鸡蛋几克蛋白质、水分、脂肪及总重量
心脏支架手术后禁忌有什么
SQL去重方法完全指南:7种常见方法详解
如何评估债券市场的风险?这些风险对投资回报有何影响?