- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我想子集news(下文)以创建news2(下文进一步),它将仅包括每个元素中abs(值)所在的行/列新闻> 0.01.
下面是我试过的代码:
gr <- data.frame(which(abs(news[, 1:ncol(news), with = FALSE]) > 0.01,
arr.ind = TRUE))
news2a <- news[gr$row, c(1, gr$col + 1L), with = FALSE]
news2a[, which(duplicated(names(news2a))) := NULL]
上面的代码并不总是有效。注:在真实数据集中,行数和列数都更多。
# news
ID diff.jan diff.feb diff.mar diff.apr
1: 7 -2.998852570e-13 2.764079712e-13 -3.291735832e-13 0.000000000e+00
2: 8 1.010000000e-01 -3.717073578e-13 -6.575639966e-13 -2.100269646e-13
3: 10 0.000000000e+00 -3.973537519e-13 0.000000000e+00 0.000000000e+00
4: 47 0.000000000e+00 0.000000000e+00 0.000000000e+00 -2.371100404e-13
5: 50 0.000000000e+00 -2.281689276e-13 2.192820401e-13 -1.857449127e-13
6: 79 0.000000000e+00 4.031985405e-13 -3.981825179e-13 0.000000000e+00
7: 202 6.409906781e-13 0.000000000e+00 NA 1.000000000e+01
8: 203 6.359592723e-13 0.000000000e+00 0.000000000e+00 1.100000000e+01
9: 468 2.545310002e-13 -2.426929277e-13 -2.612280890e-13 0.000000000e+00
diff.may diff.jun diff.jul diff.aug
1: 0.000000000e+00 0.000000000e+00 1.583933835e-13 1.182802403e-13
2: 0.000000000e+00 1.298306616e-13 -8.222315538e-13 9.721908246e-13
3: 0.000000000e+00 0.000000000e+00 0.000000000e+00 4.697083567e-13
4: -1.315189580e-13 6.926635309e-13 1.243841313e-13 0.000000000e+00
5: 0.000000000e+00 0.000000000e+00 0.000000000e+00 2.210000000e-01
6: 0.000000000e+00 0.000000000e+00 5.015727533e-13 0.000000000e+00
7: 0.000000000e+00 -1.073174486e-13 0.000000000e+00 0.000000000e+00
8: 0.000000000e+00 5.697594583e-13 0.000000000e+00 8.891748412e-13
9: -6.365151884e-13 1.595531286e-13 0.000000000e+00 -1.574081330e-13
news <- structure(list(ID = c(7L, 8L, 10L, 47L, 50L, 79L, 202L, 203L,
468L), diff.jan = c(-2.99885257e-13, 0.101, 0, 0, 0, 0, 6.409906781e-13,
6.359592723e-13, 2.545310002e-13), diff.feb = c(2.764079712e-13,
-3.717073578e-13, -3.973537519e-13, 0, -2.281689276e-13, 4.031985405e-13,
0, 0, -2.426929277e-13), diff.mar = c(-3.291735832e-13, -6.575639966e-13,
0, 0, 2.192820401e-13, -3.981825179e-13, NA, 0, -2.61228089e-13
), diff.apr = c(0, -2.100269646e-13, 0, -2.371100404e-13, -1.857449127e-13,
0, 10, 11, 0), diff.may = c(0, 0, 0, -1.31518958e-13, 0, 0, 0,
0, -6.365151884e-13), diff.jun = c(0, 1.298306616e-13, 0, 6.926635309e-13,
0, 0, -1.073174486e-13, 5.697594583e-13, 1.595531286e-13),
diff.jul = c(1.583933835e-13,
-8.222315538e-13, 0, 1.243841313e-13, 0, 5.015727533e-13, 0,
0, 0), diff.aug = c(1.182802403e-13, 9.721908246e-13, 4.697083567e-13,
0, 0.221, 0, 0, 8.891748412e-13, -1.57408133e-13)), .Names = c("ID",
"diff.jan", "diff.feb", "diff.mar", "diff.apr", "diff.may", "diff.jun",
"diff.jul", "diff.aug"), class = c("data.table", "data.frame"
), row.names = c(NA, -9L))
news2 是我想根据上面的news 实现的。
#news2
ID diff.jan diff.apr diff.aug
1: 8 0.101 NA NA
2: 50 NA NA 0.221
3: 202 NA 10 NA
4: 203 NA 11 NA
dput(news2)
news2 <- structure(list(ID = c(8L, 50L, 202L, 203L), diff.jan = c(0.101,
NA, NA, NA), diff.apr = c(NA, NA, 10L, 11L), diff.aug = c(NA,
0.221, NA, NA)), .Names = c("ID", "diff.jan", "diff.apr", "diff.aug"
), class = c("data.table", "data.frame"), row.names = c(NA, -4L
))
您能否提供实现预期结果的代码建议?
最佳答案
如果将 data.table 融化为长格式,这很容易:
library(reshape2)
news1 <- melt(news, id.vars = "ID")
news2 <- news1[abs(value) > 0.01,]
# ID variable value
#1: 8 diff.jan 0.101
#2: 202 diff.apr 10.000
#3: 203 diff.apr 11.000
#4: 50 diff.aug 0.221
dcast.data.table(news2, ID ~ variable)
# ID diff.jan diff.apr diff.aug
#1: 8 0.101 NA NA
#2: 50 NA NA 0.221
#3: 202 NA 10 NA
#4: 203 NA 11 NA
就我个人而言,我不会执行最后一步。
关于r - 子集 data.table 仅保留大于应用于所有列的特定值的元素,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31007275/
我不太确定为什么较大字符串(“cat”和“dog”)的答案不一致。我正在用链接列表和模板的使用做一些事情。我的好奇心促使我修改模板和函数重载。如果有人能解释发生了什么,我将不胜感激。谢谢你。 #inc
目前我必须编写这样的查询 SELECT * FROM table WHERE value1 > 5000 OR value2 > 5000 OR value3 > 5000 OR value4 > 5
我想创建一个如下所示的查询,但我不确定如何正确编码, 我希望它在开始时间的 1 小时内返回所有预订,这是我想出的: SELECT BookingId, StartTime FROM Booking W
这个问题已经有答案了: How to check if a number is between two values? (12 个回答) 已关闭 6 年前。 我目前正在 Codecademy 上学习
我想验证用户输入。如果用户输入的数字大于 3,则应抛出错误“Too high”,如果小于 0.15,则应抛出“Too low”错误。如果它在 3 到 0.15 之间,那么它应该显示“好的”。 我的代码
我有一个拖动脚本,我在其中拖动 div.slider,我正在跟踪 div.slider 的“左”值,并在它大于 68 时让它淡出,但问题是它当它达到 6 而不是 68 时淡出。如果我将数字更改为 85
是否有一种常见的模式如何在数据库(postgresql)中存储这样的条件,然后以简单的方式从数据库中获取这些数据,并在前端将其与我们在前端的值 SE 进行比较(以获得正确的“值” "): condit
如何大于/小于内部工作 如果我将 5 与 100 与 5 与 2,147,483,647 (Integer.MAX_VALUE) 进行比较,性能会受到多大影响 5 < 100 and 5 < Inte
当我运行此查询时它有效 SELECT sum( amount ) AS balance FROM balance WHERE amount >= 100 但是当我想过滤用户 ID 时,它返回 NULL
我有下表: account(id, balance, bank_branch) 我想选择账户余额大于其 bank_branch 平均余额的所有账户 我试过了 Select id from accoun
你们有没有人知道如何搜索所有大于指定数字的数字? 例如:所有单据编号>65 我试过这样:documentNumber: [65 TO *] 但我收到异常,因为 lucene 期望解析一个没有 * 的数
我正在使用 Prolog 算法,并且有一个生成抽象语法树的程序,例如 plus(num(1),num(2))这只是 1+2 .这是通过使用 DCG 来完成的。在这个例子中 plus(num(1),nu
是否使用 Sin(720) 或 Cos(1440)(以度为单位的角度)? 无论是在计算机编程中还是在任何其他情况下? 一般来说,是否有任何角度的 Sin/Cosine/Tan 使用 大于360? 在物
我发现了一些与此相关的问题,但没有一个真正回答了我的问题。 我有一个像这样的表格文件: 2 10610 0 0 0 0.0105292 2 10649 0 0 0
我是 Prolog 的新手,我正在尝试解决这个练习: Define a predicate greater_than/2 that takes two numerals in the notation
我想选择具有出现次数的不同键,此查询似乎有效: SELECT ItemMetaData.KEY, ItemMetaData.VALUE, count(*) FROM ItemMetaData GROU
我需要存储和使用大于 ULLONG_MAX 的数值。 我需要对这些值进行算术运算,所以我认为存储为 char** 不是一个选项。 在这些情况下,有没有办法动态创建额外的 long 前缀? 谢谢大家。根
我是 Prolog 的新手,我正在尝试解决这个练习: Define a predicate greater_than/2 that takes two numerals in the notation
处理已知大小但大于 64 位的位掩码(即执行所有位操作)的最有效的数据结构是什么? 字节[]? 大整数?完全是别的东西吗? 需要与 Java 7 兼容,并且对于诸如此类的事情应该很快(或者至少与合理预
编辑:抱歉进行了许多编辑。我自己都忘记写了什么了。 我使用 JPanel,将 BoxLayout 作为 JFrame 的根面板。我向此根面板添加了另外两个面板:带有 FlowLayou 的 Butto
我是一名优秀的程序员,十分优秀!