【发布时间】:2017-07-31 17:30:51
【问题描述】:
此问题类似于按列here 选择组内的前 N 个值。
但是,我想按组选择最后 N 个值,其中 N 取决于相应计数列的值。计数表示特定名称的出现次数。如果 count >3,我只想要最后三个条目,但如果它小于 3,我只想要最后一个条目。
# Sample data
df <- data.frame(Name = c("x","x","x","x","y","y","y","z","z"), Value = c(1,2,3,4,5,6,7,8,9))
# Obtain count for each name
count <- df %>%
group_by(Name) %>%
summarise(Count = n_distinct(Value))
# Merge dataframe with count
merge(df, count, by=c("Name"))
# Delete the first entry for x and the first entry for z
# Desired output
data.frame(Name = c("x","x","x","y","y","y","z"), Value = c(2,3,4,5,6,7,9))
【问题讨论】:
-
您应该包含
library(dplyr)并相应地标记您的问题