将包括其他值的最重复值排在前面

时间:2015-12-15 18:18:40

标签: r

我创建了一个表格,其中包含按性别,主题等组织的1000首歌曲的列表。我想知道重复多少年以及其他类别中有多少年。我试过了:

sort(summary(as.factor(canciones$YEAR)), decreasing=T)[1:3]

输出是:

1968 1966 1979 
  39   37   34 

但我希望它是

1968 1966 1979 Others
  39   37   34    950

1 个答案:

答案 0 :(得分:9)

以下是一些示例数据。

set.seed(1)
x <- sample(10, 500, TRUE)

我们可以运行整个摘要,前三个子集,然后将剩余值计算为“其他”并在最后添加。另外,我认为您可以使用table()代替summary(factor()),因为summary.factor()无论如何都会使用xx <- sort(table(x), decreasing = TRUE) c(xx[1:3], Others = sum(xx[-(1:3)])) # 5 2 4 Others # 64 61 57 318

Others = length(x) - sum(xx[1:3])

注意:使用CREATE TRIGGER `TEST` BEFORE INSERT ON `table2` FOR EACH ROW BEGIN SET NEW.row = (SELECT row_from_table_1 FROM table_1 WHERE id = NEW.id); END 可能会或可能不会更快。