使用索引计算序列中的连续变化

时间:2012-11-21 01:38:33

标签: r indexing sequence

使用R,从索引计算字符值序列中的更改数量的最佳方法是什么。例如,我有固定数量的网站:

sites<-as.factor(LETTERS[seq(from=1,to=20)])

从这些网站中,有些受到保护,有些则可以钓鱼,

protected<-as.factor(c("A","D","E","M","L","S"))

使用模拟,我得到了这个网站序列(受保护/不受保护的网站的组合)

result<-as.factor(c("A","A","A","B","C","D","D","L","L","F","F","T","S","N"))

基本上,我想计算结果序列中有多少次,从“受保护”到“未受保护”的站点有变化。在这个例子中,我正在寻找的答案是3,因为“A”,一个受保护的站点正在移动到“B”,它是不受保护的(一次移动),“B”正在移动到“C”(两者都是不受保护的,所以不会改变),......,“L”到“N”(两个动作)等等。

1 个答案:

答案 0 :(得分:3)

使用%in%和diff查找从受保护更改为非受保护的位置。然后计算你想要的值。在这里,受保护 - &gt;非保护的给出-1。

sum(diff(result %in% protected) < 0)