R 如何在列中运行unique以确保它保持行的升序
我有一个观察月(升序)列以及一个帐号列。我想运行一个unique/distinct,其中我想要唯一的帐号,但要确保R所采用的行按观察月的升序排列R 如何在列中运行unique以确保它保持行的升序,r,R,我有一个观察月(升序)列以及一个帐号列。我想运行一个unique/distinct,其中我想要唯一的帐号,但要确保R所采用的行按观察月的升序排列 Observation month A/C num 2010-09 abc1 2010-10 abc1 2010-11 xyz 我希望unique只过滤出第一行作为升序 我想在我的帐号列中运行一个唯一的,这样我就可以得到每个帐号的第一个条目 df
Observation month A/C num
2010-09 abc1
2010-10 abc1
2010-11 xyz
我希望unique只过滤出第一行作为升序
我想在我的帐号列中运行一个唯一的,这样我就可以得到每个帐号的第一个条目
df <- read.table(text = "Observation_month A_C_num
2010-09 abc1
2010-10 abc1
2010-11 xyz", header = T)
df_correct_order <- df[order(df$Observation_month), ]
df_without_duplicates <- df_correct_order[!duplicated(df_correct_order$A_C_num), ]
df_without_duplicates
> df_without_duplicates
Observation_month A_C_num
1 2010-09 abc1
3 2010-11 xyz
OP要求:
我希望unique只过滤出第一行,作为它的升序
订单我想在我的账号栏中运行一个唯一的,以便
每个帐户的第一个条目
这可以转换为聚合任务
显示每个账号的第一个观察月,即最小观察月
dplyr
图书馆(dplyr)
DF%>%
分组依据(A.C.num)%>%
总结(观察月=min(观察月))
资料
库(data.table)
DF可能是重复的,可能不是。我想在我的帐户中运行一个unique/distinct,但我希望unique/distinct以升序为我提供第一个条目,就像我希望每个帐户的第一个条目一样。先订购,然后删除重复项。订购帐号无法解决问题。我知道,但如果您相应地拆分问题,您可以合并已回答的问题(这在编码时总是一个很好的方法)。找到下面的组合解决方案。这是否意味着duplicates总是返回第一个唯一值,即我的观察月列已按“顺序”排列.duplicated
返回一个向量TRUE
和FALSE
,指示它是否重复。因此,第一次出现的值是FALSE
,因为到目前为止还没有看到,所以所有其他相同的值都是TRUE
。您希望保留所有非重复值,因此!duplicated()
。它总是从顶部开始,除非您指示它应该从底部开始(fromLast=TRUE
)。阅读?复制的
,了解更多信息。库(dplyr)df%%>%排列(观察月)%%>%不同(A_C_num,.keep_all=T)这不起作用。不同的数字不是按观察月的升序排列的。我从上面的例子中得到了与df\u完全相同的输出,没有重复项。顺序正确吗?@alisha,请更新你的问题并显示预期的结果。从你的问题和对两个答案的评论来看,不清楚你是一个什么样的人之后。但这里我们没有删除重复项或过滤掉唯一项。@Alisha我不理解您的观点。结果是否与Tino的结果相同?是否可能您的样本数据集不代表您的生产数据,或者您还没有披露其他要求?
library(dplyr)
df %>% arrange(Observation_month) %>% distinct(A_C_num, .keep_all = T)
# A tibble: 2 x 2
A.C.num Observation.month
<chr> <chr>
1 abc1 2010-09
2 xyz 2010-11
library(data.table)
setDT(DF)[, .(Observation.month = min(Observation.month)), by = A.C.num]
A.C.num Observation.month
1: abc1 2010-09
2: xyz 2010-11
library(data.table)
DF <- fread(
" Observation.month A.C.num
2010-09 abc1
2010-10 abc1
2010-11 xyz")