我正在尝试进行一项分析,该分析需要提取一些(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)
我要做的是确定这组数据中最均匀(稳定)的区域(即一个值与下一个相似)。
我的想法是在a
和b
之间进行减法并考虑绝对值:
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个值,尤其是来自数百个数据点的数组。
答案 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个元素的累加总和的增加最小。