从向量中提取相似连续数的簇

时间:2018-09-12 16:09:34

标签: r

我正在尝试进行一项分析,该分析需要提取一些(2或3个)连续值,然后在其中进行进一步分析。

我有两个向量: a 是连续细胞信号机器的输出。 b 是相同的输出,但移位了1。此符号用于了解一个信号与下一个信号之间的可变性

a <- c(150, 130, 135, 180, 182, 190, 188, 195, 170, 140, 120, 130, 180, 181)
b <- c(130, 135, 180, 182, 190, 188, 195, 170, 140, 120, 130, 180, 181, 130)

我要做的是确定这组数据中最均匀(稳定)的区域(即一个值与下一个相似)。

我的想法是在ab之间进行减法并考虑绝对值:

c <- abs(a-b)

给出

c

 [1] 20  5 45  2  8  2  7 25 30 20 10 50  1 51

现在,如果我想要3个最接近的连续点,我可以清楚地看到2 8 2序列到目前为止是我要考虑的序列,但是我不知道如何自动提取这3个值,尤其是来自数百个数据点的数组。

2 个答案:

答案 0 :(得分:2)

初始数据:

SELECT c.COURSECODE
  FROM course_user cu 
  LEFT JOIN course c on (c.id = cu.id_course)
  LEFT JOIN user u on (u.id = cu.id_user)
 GROUP BY c.COURSECODE
 HAVING count(cu.id_user) < 30

找出两个向量之间的绝对差:

        location  /laravel {
        alias html/laravel/public;
        index   index.php index.html index.html;
        try_files  $uri $uri/  @nested;

        location ~ \.php$ {
            fastcgi_pass   127.0.0.1:9000;
            #fastcgi_split_path_info ^(.+\.php)(/.+)$;
            include fastcgi.conf;
            fastcgi_index   index.php;
            fastcgi_param  SCRIPT_FILENAME  $request_filename;
            #include        fastcgi_params;
         }
     }

     location @nested {
        rewrite /laravel/(.*)$ /laravel/index.php?/$1 last;
     }

对于a <- c(150, 130, 135, 180, 182, 190, 188, 195, 170, 140, 120, 130, 180, 181) b <- c(130, 135, 180, 182, 190, 188, 195, 170, 140, 120, 130, 180, 181, 130) 中的每个元素,求邻居并计算绝对差之和:

res <- abs(a - b)

要从原始向量中提取值,请使用:

res

答案 1 :(得分:1)

这里是另一种选择:

import React from 'react';
import { Route } from 'react-router-dom';
import LoginPage from "./Login";
import UploadScreen from "./UploadScreen";

const App = () => (
<div className="ui container"> 
  <Route path="/" exact component={LoginPage} />
  <Route path="/upload" exact component={UploadScreen} />
</div>
);
export default App;

以上代码使用a <- c(150, 130, 135, 180, 182, 190, 188, 195, 170, 140, 120, 130, 180, 181) b <- c(130, 135, 180, 182, 190, 188, 195, 170, 140, 120, 130, 180, 181, 130) res <- abs(a-b) > which.min(diff(c(0, cumsum(res)), lag=3)) [1] 4 > res[(4):(4+2)] [1] 2 8 2 来获取绝对差的累积和。然后,它用cumsum调用diff,以获取每个元素之间的距离以及元素3远离它的位置。最终,该位置的位置连续3个元素的累加总和的增加最小。