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语言中数据框架的基本使用方法,为后续的数据分析和处理打下坚实的基础。
热门推荐
乳胶漆有胶吗?揭秘家装材料的选择之道
“水美中国”的木兰溪实践
如何使用OBD诊断仪检测车辆故障
不干胶材料的种类、特性和应用场景
买卖双方需要交什么税?买卖双方的主要义务是什么?
科研方法在科学研究中的意义和价值
西安新生儿医保办理指南
从峰顶到峰顶 中国最年轻珠峰女孩的攀登之旅
在英国护照到期怎么办
打印机不能打印图片是怎么回事?常见5种原因及解决方法
小鳄龟的饲养指南:从饮食到繁殖全解析
行车记录仪JS-5使用指南:从入门到精通
治未病——了解中医健康评估
深入理解CNN卷积层、池化层、全连接层
深入理解CNN卷积层、池化层、全连接层
粮农组织总干事屈冬玉:丰富森林粮库,保障粮食安全,共创美好未来
爱与坚持帮他们越过横亘在生命中的这道坎——癌症
真空阀的分类和驱动形式以及标准规范
范氏义庄的千年智慧与现代传承:中建投信托企业家办公室视角下的文化基因与制度创新
北京14个拍照公园推荐,从免费到30元,总有一款适合你
《胃肠病学》:新型IgG检测可帮助排除“伤害性”食物,显著改善IBS患者腹痛症状
潮汕女人几时婚嫁最好?传统潮汕婚俗文化解读
传统美食炸酱面的制作工艺与历史
超前与滞后的魔幻交织:Shimano自行车碟刹的百年技术轮回
液氮容器在农业与食品行业的应用:冷冻保鲜与种子保存
《哪吒2》中蕴藏的文物元素
14种常用印刷纸张 你都了解吗
超薄板桁架:是技术,也是艺术
文科生就业难?打破条框,文科生不必陷入“弱者”思维定势
如何建立和拓展有效的客户关系网络