使用R仅基于一列提取行

使用R仅基于一列提取行,r,subset,R,Subset,请帮忙,我需要根据一列从表中提取数据, 这是我的桌子: Col1 Col2 Col3 1 34 3 1 34 4 2 342 3 2 23 4 我需要什么 Col1 Col2 Col3 1 34 3 1 34 4 但最重要的是,我不能使用df_extract%distinct(Col1) 2) 下一步,使用来自df_distinct的数据、来自表的子集数据,您可以将表转换为数据帧,然后再转换为子集。这可能是最简单的方法

请帮忙,我需要根据一列从表中提取数据, 这是我的桌子:

Col1 Col2  Col3 
1    34    3
1    34    4
2    342   3
2    23    4
我需要什么

Col1 Col2 Col3 
1    34   3
1    34   4
但最重要的是,我不能使用
df_extract%distinct(Col1)

2) 下一步,使用来自df_distinct的数据、来自表的子集数据,您可以将表转换为数据帧,然后再转换为子集。这可能是最简单的方法

让我们将您的表称为“tab”,将新的数据框称为“df”


df尝试使用以下方法创建数据:

df <- data.frame(col1 = c(1,1,2,2,1,1,2,2),
                 col2 = c(34,34,342,23,34,34,342,23),
                 col3 = c(3,4,3,4,3,4,3,4))
而且,如果您只需要不同的列,也许您可以试试这个

> unique(df[df$col1 == 1, ])
  col1 col2 col3
1    1   34    3
2    1   34    4
而且,如果需要基于
col1
聚合数据,可以尝试以下方法。因为,
col1
是数字

> aggregate(df[,-1], by = list(col1 = df$col1), sum)
  col1 col2 col3
1    1  136   14
2    2  730   14

不清楚您的逻辑。
子集(df,duplicated(Col2)| duplicated(Col2,fromLast=TRUE))
df <- data.frame(col1 = c(1,1,2,2,1,1,2,2),
                 col2 = c(34,34,342,23,34,34,342,23),
                 col3 = c(3,4,3,4,3,4,3,4))
> df[df$col1 == 1, ]
  col1 col2 col3
1    1   34    3
2    1   34    4
5    1   34    3
6    1   34    4
> unique(df[df$col1 == 1, ])
  col1 col2 col3
1    1   34    3
2    1   34    4
> aggregate(df[,-1], by = list(col1 = df$col1), sum)
  col1 col2 col3
1    1  136   14
2    2  730   14