A:如何跨多列查找唯一行
您可以使用以下方法在 R 中的数据框的多个列中查找唯一行:
方法 1:跨多列查找唯一行(删除其他列)
df_unique <- unique(df[c(' col1 ', ' col2 ')])
方法 2:跨多列查找唯一行(保留其他列)
df_unique <- df[!duplicated(df[c(' col1 ', ' col2 ')]),]
以下示例展示了如何在实践中使用以下数据框使用每种方法:
#create data frame
df <- data. frame (conf=c('East', 'East', 'East', 'West', 'West', 'West'),
pos=c('G', 'G', 'F', 'G', 'F', 'F'),
dots=c(33, 28, 31, 39, 34, 40))
#view data frame
df
conf pos points
1 East G 33
2 East G 28
3 East F 31
4 West G 39
5 West F 34
6 West F 40
方法 1:跨多列查找唯一行(删除其他列)
以下代码显示如何在数据框的conf和pos列中查找唯一行:
#find unique rows across conf and pos columns
df_unique <- unique(df[c(' conf ', ' pos ')])
#view results
df_unique
conf pos
1 East G
3 East
4 West G
5 West
结果是四个独特的线条。
另请注意,点列已自动从结果中删除。
方法 2:跨多列查找单行(删除其他列)
以下代码展示了如何在数据框的conf和pos列中查找单行并将值保留在points列中:
#find unique rows across conf and pos columns
df_unique <- df[!duplicated(df[c(' conf ', ' pos ')]),]
#view results
df_unique
conf pos points
1 East G 33
3 East F 31
4 West G 39
5 West F 34
请注意, conf和pos列中仅存在单行,并且Points列中的值将被保留。
请务必注意,仅保留第一个唯一出现的值。
例如,前两列中有两行包含“East”和“G”,但最终数据框中仅保留了该唯一组合第一次出现的分值 (33)。
同样,前两列中有两行包含“West”和“F”,但最终数据框中仅保留了该唯一组合第一次出现的分值 (34)。
其他资源
以下教程解释了如何在 R 中执行其他常见任务: