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:跨多列查找唯一行(删除其他列)

以下代码显示如何在数据框的confpos列中查找唯一行:

 #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:跨多列查找单行(删除其他列)

以下代码展示了如何在数据框的confpos列中查找单行并将值保留在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

请注意, confpos列中仅存在单行,并且Points列中的值将被保留。

请务必注意,仅保留第一个唯一出现的值。

例如,前两列中有两行包含“East”和“G”,但最终数据框中仅保留了该唯一组合第一次出现的分值 (33)。

同样,前两列中有两行包含“West”和“F”,但最终数据框中仅保留了该唯一组合第一次出现的分值 (34)。

其他资源

以下教程解释了如何在 R 中执行其他常见任务:

如何在R中查找列中的唯一值
如何在R中按组计算唯一值
如何使用dplyr过滤唯一值

添加评论

您的电子邮箱地址不会被公开。 必填项已用*标注