我有一个数据集,我想为其检查具有相同列U
值的所有行,并检查后面A
列之后的删除行。如果行顺序不变,那会更好。
我尝试使用duplicated()
,但没有成功。有一个更好的方法吗?请提出建议。
输入数据
data <- read.table(header = TRUE, text ="U A B C D E F G H I
A C 1 2 31.9 32.1 1 32 32 32
A D 1 3 31.9 32.1 1 32 32 32
B C 1 4 31.9 32.1 1 32 32 32
B D 1 5 31.9 32.1 1 32 32 32
")
预期产量
U A B C D E F G H I
A C 1 2 31.9 32.1 1 32 32 32
B C 1 4 31.9 32.1 1 32 32 32
答案 0 :(得分:2)
duplicated
确实有效!
> data[!duplicated(data$U), ]
U A B C D E F G H I
1 A C 1 2 31.9 32.1 1 32 32 32
3 B C 1 4 31.9 32.1 1 32 32 32
或者
> data[duplicated(data$U, fromLast = TRUE), ]
U A B C D E F G H I
1 A C 1 2 31.9 32.1 1 32 32 32
3 B C 1 4 31.9 32.1 1 32 32 32
答案 1 :(得分:1)
我们可以使用unique
中的data.table
library(data.table)
unique(setDT(data), by = "U")
# U A B C D E F G H I
#1: A C 1 2 31.9 32.1 1 32 32 32
#2: B C 1 4 31.9 32.1 1 32 32 32