📅  最后修改于: 2023-12-03 15:26:08.433000             🧑  作者: Mango
数据框(Data Frame)是R语言中一种常用的数据结构,它类似于Excel表格,每一列可以是不同的数据类型(比如字符型、数值型、逻辑型等),每一行表示一个观测值,每一行也可以被视为一个向量。
唯一行指的是数据框中不重复的行,也就是说,如果数据框中的两行完全相同,那么它们不算做唯一行。
提取数据框中的唯一行有多种方法,下面介绍其中两种。
# 创建一个数据框
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表示唯一的行。
# 加载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()函数的任何参数,因此默认按照所有列的值来判断行是否唯一。