📌  相关文章
📜  数据框中的唯一行 (1)

📅  最后修改于: 2023-12-03 15:26:08.433000             🧑  作者: Mango

数据框中的唯一行

什么是数据框

数据框(Data Frame)是R语言中一种常用的数据结构,它类似于Excel表格,每一列可以是不同的数据类型(比如字符型、数值型、逻辑型等),每一行表示一个观测值,每一行也可以被视为一个向量。

什么是唯一行

唯一行指的是数据框中不重复的行,也就是说,如果数据框中的两行完全相同,那么它们不算做唯一行。

如何提取数据框中的唯一行

提取数据框中的唯一行有多种方法,下面介绍其中两种。

方法一:使用duplicated()函数+!运算符
# 创建一个数据框
df <- data.frame(name=c("Mike", "Steve", "Mike", "John", "John"),
                 age=c(25, 30, 25, 22, 22),
                 score=c(80, 90, 80, 85, 85))

# 提取唯一行
unique_df <- df[!duplicated(df),]

# 输出结果
unique_df

运行结果如下:

   name age score
1  Mike  25    80
2 Steve  30    90
4  John  22    85

其中,duplicated(df)返回一个逻辑向量,表示df中的每一行是否是重复的。!运算符用来取反,将重复的行对应的逻辑值取反,变成TRUE。最终,!duplicated(df)返回的逻辑向量中的TRUE表示唯一的行。

方法二:使用distinct()函数
# 加载dplyr包
library(dplyr)

# 创建一个数据框
df <- data.frame(name=c("Mike", "Steve", "Mike", "John", "John"),
                 age=c(25, 30, 25, 22, 22),
                 score=c(80, 90, 80, 85, 85))

# 提取唯一行
unique_df <- distinct(df)

# 输出结果
unique_df

运行结果如下:

   name age score
1  Mike  25    80
2 Steve  30    90
3  John  22    85

其中,distinct()函数通过比较指定列的值来判断行是否唯一。如果多个行的指定列的值相同,则只保留其中的一行。在上面的例子中,我们没有指定distinct()函数的任何参数,因此默认按照所有列的值来判断行是否唯一。