将唯一元素保留在数据框列中

时间:2014-07-11 12:10:01

标签: r dataframe unique

我将尝试用一个例子解释我的问题。

df <- data.frame(VIN=paste("vin", c(1:6,2), sep = ""), 
                 KM=c(15, 48, 545, 544, 874, 6523, 1422))

我想清理我的data.frame,并且只保留VIN列中的唯一元素,在我的示例中我复制了“vin2”,因此要在两者之间进行选择,我会将VIN与较小的KM一起使用。这是第二行。

我该怎么做?

1 个答案:

答案 0 :(得分:2)

以下两个选项需要考虑。

第一个使用rank

df[with(df, ave(KM, VIN, FUN = rank)) == 1, ]
#    VIN   KM
# 1 vin1   15
# 2 vin2   48
# 3 vin3  545
# 4 vin4  544
# 5 vin5  874
# 6 vin6 6523

第二个取决于order和`重复(并且看起来更直观,以某种方式,但需要您在继续之前对数据进行排序)。

X <- df[with(df, order(VIN, KM)), ]
X[!duplicated(X$VIN), ]
#    VIN   KM
# 1 vin1   15
# 2 vin2   48
# 3 vin3  545
# 4 vin4  544
# 5 vin5  874
# 6 vin6 6523
相关问题