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语言中数据框架的基本使用方法,为后续的数据分析和处理打下坚实的基础。
热门推荐
手动挡车型紧急刹车时需要踩离合吗?正确操作关乎行车安全
85花这十一年:从流量女王到实力派的转型之路
简历制作的注意事项
藏红花泡水的秘密:切勿随意喝,全面解锁禁忌与正确饮用窍门
我国风力发电快速发展之路
TCP协议如何解决丢包的问题
动力新科盘中触及涨停 汽车板块活跃度提升
储能与电力电子行业就业形势与人才分布分析
今年的F1中国大奖赛,有点不一样
中国朝鲜族人口急速减少?70万朝鲜族奔向韩国,他们能融入韩国吗?
治疗肩峰撞击
荣国府兴衰映曹家 一部《红楼梦》一场扬州旧梦
欧冠回忆录——诺坎普奇迹
股市暴跌的原因与影响
学会表达情感:让爱不再沉默
吃了个橙子突然恶心呕吐?可能是这些原因
气相色谱仪载气净化详解:气体净化器、脱氧管、干燥管的作用与原理
揭秘可控硅整流器:它就是我们常说的晶闸管!
买卖合同违约罚息标准最新规定
什么是可复性牙髓炎
心情不好的时候怎样缓解心情
住小城市、有房有钱、不愁带娃......当代人有自己的幸福画像
公路项目安全管理如何实施
2025提前批军校有哪些学校分数线多少?附考军校提前批的流程
VMware Workstation虚拟机固定IP配置(主机互通、外网可访问)
探究伯邑考悲剧命运的成因
买车的资金流水如何准备与管理?这些资金管理策略有哪些注意事项?
用AI哄娃靠谱吗?人工智能可以取代父母?
以数字孪生技术,改革建筑运营
造成免疫失败的原因有哪些?