问小白 wenxiaobai
资讯
历史
科技
环境与自然
成长
游戏
财经
文学与艺术
美食
健康
家居
文化
情感
汽车
三农
军事
旅行
运动
教育
生活
星座命理

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()命令编辑数据框架

  1. 创建一个空数据框架:

    myTable <- data.frame()
    
  2. 使用edit()函数启动编辑器:

    myTable <- edit(myTable)
    
  3. 在弹出的窗口中编辑数据框架。

  4. 检查编辑后的数据框架:

    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语言中数据框架的基本使用方法,为后续的数据分析和处理打下坚实的基础。

© 2023 北京元石科技有限公司 ◎ 京公网安备 11010802042949号