📌  相关文章
📜  在R中的DataFrame中选择每个组的第一行

📅  最后修改于: 2022-05-13 01:54:36.118000             🧑  作者: Mango

在R中的DataFrame中选择每个组的第一行

在本文中,我们将讨论如何使用 R 编程语言在 Dataframe 中选择每个组的第一行。

duplicated() 方法用于确定数据帧的哪些元素是其他元素的副本。该方法返回一个逻辑向量,它告诉数据帧的哪些行是重复的。

句法:

duplicated(data-frame$col-name)

非重复行使用补充的duplicated() 方法获取,并使用数据帧索引方法引用,其中所有列都被获取,行是使用duplicated() 方法过滤掉的行。原始数据帧的行号保留在最终输出中。

示例:从每组中选择第一行



R
# create first dataframe
data_frame1<-data.frame(col1=c(rep('Grp1',2),
                               rep('Grp2',2),
                               rep('Grp3',2)), 
                        col2=rep(c(1:3),2),
                        col3=rep(1:2,3) 
                        )
  
print("Original DataFrame")
print(data_frame1)
  
print("Modified DataFrame")
  
# computing sum over rest of columns
data_frame1[!duplicated(data_frame1$col1), ]


R
# create first dataframe
data_frame1<-data.frame(col1=c(rep('Grp1',2),
                               rep('Grp2',2),
                               rep('Grp3',2)), 
                        col2=rep(1,2),
                        col3=rep(1,3) 
                        )
  
print("Original DataFrame")
print(data_frame1)
  
# grouping by col3
print("Modified DataFrame")
  
# computing groups over col3 and col2
data_frame1[!duplicated(c(data_frame1$col3,data_frame1$col2)), ]


输出:

[1] "Original DataFrame" 
  col1 col2 col3 
1 Grp1    1    1 
2 Grp1    2    2 
3 Grp2    3    1 
4 Grp2    1    2 
5 Grp3    2    1 
6 Grp3    3    2 
[1] "Modified DataFrame" 
  col1 col2 col3 
1 Grp1    1   1 
3 Grp2    3   1 
5 Grp3    2   1

以下代码片段说明了重复函数的用法,应用于多列。可以使用 c() 方法将列组合在一起。

示例:选择每组的第一行

电阻

# create first dataframe
data_frame1<-data.frame(col1=c(rep('Grp1',2),
                               rep('Grp2',2),
                               rep('Grp3',2)), 
                        col2=rep(1,2),
                        col3=rep(1,3) 
                        )
  
print("Original DataFrame")
print(data_frame1)
  
# grouping by col3
print("Modified DataFrame")
  
# computing groups over col3 and col2
data_frame1[!duplicated(c(data_frame1$col3,data_frame1$col2)), ]

输出:

[1] "Original DataFrame" 
col1 col2 col3 
1 Grp1    1    1 
2 Grp1    1    1 
3 Grp2    1    1 
4 Grp2    1    1 
5 Grp3    1    1 
6 Grp3    1    1 
[1] "Modified DataFrame" 
col1 col2 col3 
1 Grp1    1    1