- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我有以下数据框,其中包含多行的角度变化值:
'data.frame': 712801 obs. of 4 variables:
$ time_passed: int 1 2 3 4 5 6 7 8 9 10 ...
$ dRoll : num 0.9798 -0.5099 -0.0974 -0.4985 0.1719 ...
$ dPitch : num -0.175 -0.0655 0.0653 0.8907 -1.0893 ...
$ dYaw : num 0.33232 0.06875 -0.00573 0.59588 -0.55577 ...
> myData[1:20,]
time_passed dRoll dPitch dYaw
1 0.97975783 -0.17498131 0.332315521
2 -0.50993244 -0.06548908 0.068754935
3 -0.09740283 0.06531719 -0.005729578
4 -0.49847328 0.89072019 0.595876107
5 0.17188734 -1.08930736 -0.555769061
6 0.68181978 0.36852645 0.492743704
7 1.07143108 0.15206300 -0.635983153
8 -1.43812407 -0.76638835 -0.509932438
9 0.43544792 0.41241502 0.767763445
10 0.25210143 0.61375239 0.509932438
11 0.38961130 0.01203211 -0.360963411
12 0.03437747 -0.29633377 -0.315126787
13 -0.33804510 -0.40639896 -0.177616916
14 0.68181978 0.32446600 0.435447924
15 -1.12872686 -0.37752189 -0.275019742
16 0.75057471 0.33907642 0.464095814
17 -0.25783101 0.11310187 0.309397209
18 -0.01718873 -0.13435860 -0.521391594
19 0.12605071 0.12817066 -0.085943669
20 0.02291831 -0.59856901 -0.120321137
我会怎样写类似的东西
"If the sum of subsequent negative (or positive) values is smaller than my threshold (say, 5° change), then trow it out of the data set"
在 R 代码中?
我想将此标准应用于任何行,所以 dRoll
或 dPitch
或 dYaw
。
在这种情况下,基于 dRoll 列应用,输出将是:
time_passed dRoll dPitch dYaw
1 0.97975783 -0.17498131 0.332315521
5 0.17188734 -1.08930736 -0.555769061
6 0.68181978 0.36852645 0.492743704
7 1.07143108 0.15206300 -0.635983153
9 0.43544792 0.41241502 0.767763445
10 0.25210143 0.61375239 0.509932438
11 0.38961130 0.01203211 -0.360963411
12 0.03437747 -0.29633377 -0.315126787
14 0.68181978 0.32446600 0.435447924
16 0.75057471 0.33907642 0.464095814
19 0.12605071 0.12817066 -0.085943669
20 0.02291831 -0.59856901 -0.120321137
dRoll 中的所有负数运行都被丢弃,因为后续负值的总和小于 5 度:
sum(myData[2:4,2])
= -1.105809
-1.43812
、-0.33804
、-1.12872
sum(myData[17:18,2])
= -0.2750197
在 R 中如何做到这一点?
最佳答案
我的建议是首先将您的数据框融合为长格式。之后,您可以更轻松地进行分组操作。
使用 data.table
包(melt
和 rleid
函数需要它):
# load the package
library(data.table)
# melt into long format
DT2 <- melt(DT, id = 'time_passed')
# create a cummulative sum for each run
# 'rleid(value > 0)' creates a grouping variable for runs of consecutive positive/negative values
# by adding '[.N]' to 'cumsum(value)' you set all values in 'csum' to the highest value
# for each run, which we can use to filter the data
DT2[, csum := cumsum(value)[.N], by = .(variable, rleid(value > 0))]
# filter the data according to a rule
# in this case only the values between -1.2 and -0.2 are filtered out
DT2[csum < -1.2 | csum > -0.2]
它给出(结果的快照):
time_passed variable value csum
1: 1 dRoll 0.979757830 0.979757830
2: 5 dRoll 0.171887340 1.925138200
3: 6 dRoll 0.681819780 1.925138200
4: 7 dRoll 1.071431080 1.925138200
5: 8 dRoll -1.438124070 -1.438124070
6: 9 dRoll 0.435447920 1.111538120
....
....
14: 3 dPitch 0.065317190 0.956037380
15: 4 dPitch 0.890720190 0.956037380
16: 6 dPitch 0.368526450 0.520589450
17: 7 dPitch 0.152063000 0.520589450
18: 9 dPitch 0.412415020 1.038199520
19: 10 dPitch 0.613752390 1.038199520
....
....
26: 1 dYaw 0.332315521 0.401070456
27: 2 dYaw 0.068754935 0.401070456
28: 3 dYaw -0.005729578 -0.005729578
29: 4 dYaw 0.595876107 0.595876107
30: 6 dYaw 0.492743704 0.492743704
31: 9 dYaw 0.767763445 1.277695883
关于r - 过滤/子集数据框到变化的阈值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37251595/
场景 网站页面有一个带有分页、过滤、排序功能的表格 View 。 表中的数据是从REST API服务器获取的,数据包含数百万条记录。 数据库 REST API 服务器 Web 服务器 浏览器 问
我有一个表student,其中的列dte_date(日期)具有值(2019-01-01、2019-02-01、2019-03-01)。 .等) 条件: dte_date 列中没有重复值。 但 dte_
我有一些逻辑可以根据不活动的用户创建通知。我正在获取具有以下属性的用户列表。我想做的只是在部门有非 Activity 用户时触发我的创建通知方法。因此,给出下面的列表,基本上会创建 1 个通知,表示部
使用 GPS 开发跟踪应用程序。一切都很好,但有时由于封闭区域或恶劣天气,我得到的分数不准确。当您绘制它们时,它看起来不对,有很多跃点/跳跃。 我应该运行什么算法来过滤掉不良信号对我来说,这看起来像是
我正在尝试按变量类型过滤对象数组。节点是一个具有位置的对象,但以不同的方式定义——作为点、矢量或附件。这是一个代码: class Joint { var position:Position
我想做的是在向量上创建一个过滤器,以便它删除未通过谓词测试的元素;但不太确定我该怎么做。 我根据谓词评估输入向量中的每个元素,例如在我的代码中,is_even 仿函数在 device_vector 向
我是 Gremlin 的新手,我正在使用 Gremlin 3.0.2 和 Stardog 5.0。我编写此查询是为了找出 schema.org 本体中两个实体之间的路径。以下是输出 - gremlin
考虑以下示例数据表, dt 30 的那一行需要去 - 或者如果其中两行 > 30相隔几秒钟,删除所有 3 个。然而 ,当我们有 4 行或更多行时,我们需要删除时间差 > 30 没有另一对 < 30
我正在考虑使用 ZeroMQ,并尝试了一些示例。但是,我无法验证 ZeroMQ 是否支持一些重要的要求。我希望你能帮助我。 我将使用这个简单的场景来问我的问题: 出版商(例如交易所)提供(大量)股票的
我需要从我的查询中过滤掉大量的对象。目前,它正在抓取类中的所有对象,我想将其过滤为查询字符串中的相关对象。我怎样才能做到这一点?当我尝试时,我收到一个属性错误说明 ''QuerySet' object
如何在 Prometheus 查询中添加标签过滤器? kube_pod_info kube_pod_info{created_by_kind="ReplicaSet",created_by_name=
我有包含字符串的列的数据框,并希望过滤掉包含某些字符串以外的任何内容的所有行。考虑下面的简化示例: string % dplyr::filter(stringr::str_detect(string,
我有以下数据框,其中包含多行的角度变化值: 'data.frame': 712801 obs. of 4 variables: $ time_passed: int 1 2 3 4 5 6
我有一个 BehaviorSubject我希望能够filter ,但要保持新订阅者在订阅时始终获得一个值的行为主题式质量,即使最后发出的值被过滤掉。有没有一种简洁的方法可以使用 rxjs 的内置函数来
我有一个 RSS 提要,每天输出大约 100 篇文章。我希望过滤它以仅包含更受欢迎的链接,也许将其过滤到 50 个或更少。回到当天,我相信您可以使用“postrank”来做到这一点,但在谷歌收购后现已
我有这样一个重复的xml树- this is a sample xml file yellowred blue greyredblue 如您所见,每个项目可以具有不同数量的颜色标签
我以为我在 Haskell 学习中一帆风顺,直到... 我有一个 [[Int]] tiles = [[1,0,0] ,[0,1,0] ,[0,1,0]
我在使用 Knockout.js 过滤可观察数组时遇到问题 我的js: 包含数据的数组 var docListData = [ { name: "Article Name 1", info:
我在 mongoDB 中有这个架构: var CostSchema = new Schema({ item: String, value: Number }); var Attachm
给定一个数据框“foo”,我如何才能只选择“foo”中的那些行,例如foo$location =“那里”? foo = data.frame(location = c("here", "there",
我是一名优秀的程序员,十分优秀!