如何在变量接近时消除变量(即接近 200 毫秒 -> 删除行)
How to eliminate variables when they are to close together (i.e. closer than 200 ms -> delete the row )
今天第一个post。
目前我正在进行我的研究,我必须分析心率数据。
现在我已经完成了我的大部分代码,我发现我正在使用的算法 (RHRV) 利用了心跳的出现,并具有匹配的秒数。
我的简单 txt 文件,以秒为单位,因此看起来像这样(1 列,433 行):
0.905
1.943
2.941
4.005
4.998
5.921
这些是心跳和它们发生的秒数。
我现在的问题是:如何删除不可能出现的事件,例如:
2 occurences/heartbeats 发生速度快于 0.2 秒(200 毫秒)
有没有简单的方法或功能可以让我更改数据?
期待您的回答!
干杯,
桑德
# create some random values
set.seed(3)
heartBeats <- sort(runif(10))
# which of them are reasonable?
keepThese <- heartBeats - lag(heartBeats) > 0.02
keepThese[is.na(keepThese)] <- TRUE # remove NAs
# and now subset the original vector
heartBeats[keepThese]
我想不出一个矢量化的方法来做到这一点,但这可行。请注意,这对于长向量来说会很昂贵,因为表达式 y <- c(y, x[i])
将继续重建向量 y
.
x <- c(171.1156, 171.1345, 171.256, 171.309, 171.465, 171.4986, 171.986, 172.563)
m <- 1
y <- numeric(0)
y[m] <- x[1]
for (i in 2:NROW(x)) {
if (y[m] + 0.2 < x[i]) {
m <- m + 1
y <- c(y, x[i])
}
}
y
# output
[1] 171.1156 171.4650 171.9860 172.5630
我遍历 x
的元素,每次遇到与 y
中最新接受的值相差超过 0.2 的值时,我都会用它更新 y
x[i]
.
今天第一个post。
目前我正在进行我的研究,我必须分析心率数据。 现在我已经完成了我的大部分代码,我发现我正在使用的算法 (RHRV) 利用了心跳的出现,并具有匹配的秒数。
我的简单 txt 文件,以秒为单位,因此看起来像这样(1 列,433 行): 0.905 1.943 2.941 4.005 4.998 5.921
这些是心跳和它们发生的秒数。
我现在的问题是:如何删除不可能出现的事件,例如: 2 occurences/heartbeats 发生速度快于 0.2 秒(200 毫秒)
有没有简单的方法或功能可以让我更改数据?
期待您的回答!
干杯,
桑德
# create some random values
set.seed(3)
heartBeats <- sort(runif(10))
# which of them are reasonable?
keepThese <- heartBeats - lag(heartBeats) > 0.02
keepThese[is.na(keepThese)] <- TRUE # remove NAs
# and now subset the original vector
heartBeats[keepThese]
我想不出一个矢量化的方法来做到这一点,但这可行。请注意,这对于长向量来说会很昂贵,因为表达式 y <- c(y, x[i])
将继续重建向量 y
.
x <- c(171.1156, 171.1345, 171.256, 171.309, 171.465, 171.4986, 171.986, 172.563)
m <- 1
y <- numeric(0)
y[m] <- x[1]
for (i in 2:NROW(x)) {
if (y[m] + 0.2 < x[i]) {
m <- m + 1
y <- c(y, x[i])
}
}
y
# output
[1] 171.1156 171.4650 171.9860 172.5630
我遍历 x
的元素,每次遇到与 y
中最新接受的值相差超过 0.2 的值时,我都会用它更新 y
x[i]
.