【发布时间】:2014-11-14 14:42:39
【问题描述】:
顺便说一句,我正在使用 R 编程。
假设我有一个这样的数据框。
row.names Tx Hx Tn
1 51 33.9 43.48 24.9
2 52 33.0 41.03 22.5
3 64 32.8 37.74 23.3
4 65 32.7 44.53 22.3
5 66 34.9 42.43 23.5
6 77 33.6 38.74 21.8
7 78 34.6 45.46 27.1
8 84 32.9 41.67 24.1
9 85 35.1 43.15 25.0
10 117 32.0 37.11 20.0
我试图弄清楚在 row.names 列中出现了多少次两个或更多连续数字和三个或更多连续数字。
因此,对于此示例,依次为 51、52、64、65、66,然后是 77、78,最后是 84、85。我只想计算两个或更多连续数字和三个或更多连续数字发生了多少次。
我的结果是
2+ = 4
3+ = 1
提前感谢您的帮助!
【问题讨论】:
-
试试
cumsum(rev(table(table(cumsum(c(TRUE,diff(df$row.names)!=1)))))) -
另见
seqle来自“cgwtools”包:cgwtools::seqle(DF$row.names);然后,您可以为每个所需的“>= n”申请table。