R中的向量分析

时间:2018-11-11 08:50:39

标签: r rstudio

作为输入,您的函数应采用0和1的向量; 每次在数据中看到序列为1时,都需要将子代数增加1; 注意两个连续的1序列,它们之间的差小于5(即,如果它们之间的差小于5个0,则它是同一个孩子,而不是新孩子); 为了帮助您,社交规划师提供了一些示例,说明您的函数应返回什么:

#Input: c(1,1,1,1,0,0,0,0)

#Output: 1 1 1 1 1 1 1 1

#Input: c(0,0,0,0,1,1,1,1,0,0,0,0,0,1,1,1)

#Output: 0 0 0 0 1 1 1 1 1 1 1 1 1 2 2 2

#Input: c(0,0,0,0,1,1,1,1,0,0,1,1,0,0,0,1,1,0,0,0,0,1,1,0,0,0,0,0,1)

#Output: 0 0 0 0 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 2

函数,可能会有所帮助: diff() cumsum() which() rle()

我不太了解如何解决这个问题,我对此的想法是在求和后使用diff函数,因为这将帮助我维持连续的1s,但在这种情况下,我将丢失向量的长度(显然#rle$lenght似乎也可以帮助我检测长度为5或更大的间隙以将1s变为2s。抱歉,我只是一个初学者

1 个答案:

答案 0 :(得分:0)

我利用r中的哪个函数(https://www.r-bloggers.com/which-function-in-r/)和游程长度编码(http://www.cookbook-r.com/Manipulating_data/Finding_sequences_of_identical_values/)。这是我的尝试:

Cake.AWS.ElasticBeanstalk