根据另一列的值删除重复行
Remove duplicate rows based on value of another column
我是 R 新手,这是我的第一个 SO post(但我是一个长期用户),如果这是一个愚蠢的问题,我深表歉意。在此先感谢您的帮助。
我有一个包含 50 多列的大型数据集。人为错误导致某些项目输入两次,但关键变量中的信息不同。为简单起见,我将其简化为两列问题:教师-class 编号 (tc_num)、考试状态 (x_gen).
不幸的是,我无法分享实际的数据集,但这基本上是我所拥有的:
tc_num
x_gen
12355
N
12355
Y
26421
Y
26421
N
78943
N
45679
Y
在重复 tc_num 值的情况下(例如,12355、26421),我想 select 具有“Y”值的行并丢弃“N”值 但是,大多数tc_num 值是唯一的(例如,78943、45679),我想保留所有这些行(换句话说,我不能只丢弃 x_gen =“N”的所有行)。
所以,我想保留所有行,除非存在重复的 tc_num 值,在这种情况下,我想保留具有“Y”值的行。
提前致谢。我很感谢这个社区,多年来它对我帮助很大。
subset(df, x_gen == "Y" | ave(tc_num, tc_num, FUN = length) == 1)
我是 R 新手,这是我的第一个 SO post(但我是一个长期用户),如果这是一个愚蠢的问题,我深表歉意。在此先感谢您的帮助。
我有一个包含 50 多列的大型数据集。人为错误导致某些项目输入两次,但关键变量中的信息不同。为简单起见,我将其简化为两列问题:教师-class 编号 (tc_num)、考试状态 (x_gen).
不幸的是,我无法分享实际的数据集,但这基本上是我所拥有的:
tc_num | x_gen |
---|---|
12355 | N |
12355 | Y |
26421 | Y |
26421 | N |
78943 | N |
45679 | Y |
在重复 tc_num 值的情况下(例如,12355、26421),我想 select 具有“Y”值的行并丢弃“N”值 但是,大多数tc_num 值是唯一的(例如,78943、45679),我想保留所有这些行(换句话说,我不能只丢弃 x_gen =“N”的所有行)。
所以,我想保留所有行,除非存在重复的 tc_num 值,在这种情况下,我想保留具有“Y”值的行。
提前致谢。我很感谢这个社区,多年来它对我帮助很大。
subset(df, x_gen == "Y" | ave(tc_num, tc_num, FUN = length) == 1)