- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
使用通用数据:
set.seed(456)
a <- sample(0:1,50,replace = T)
b <- rnorm(50,15,5)
df1 <- data.frame(a,b)
c <- seq(0.01,0.99,0.01)
d <- rep(NA, 99)
for (i in 1:99) {
d[i] <- 0.5*(10*c[i])^2+5
}
df2 <- data.frame(c,d)
对于每个 df1$b
,我们想找到最近的 df2$d
。然后我们创建一个新变量 df1$XYZ
,它采用最近的 df2$d
df2$c
值
这个 question 引导我使用 data.table
库。但是我不确定 ddplyr
和 group_by
是否也可以使用:
这是我的 data.table
尝试:
library(data.table)
dt1 <- data.table( df1 , key = "b" )
dt2 <- data.table( df2 , key = "d" )
dt[ ldt , list( d ) , roll = "nearest" ]
最佳答案
这是使用 data.table
的一种方法:
require(data.table)
setDT(df1)[, XYZ := setDT(df2)[df1, c, on=c(d="b"), roll="nearest"]]
您需要为每个df1$b
获取与df2$d
中最接近的值对应的df2$c
。因此,我们需要加入 df2[df1]
,这会导致 nrow(df1)
行。这可以通过 setDT(df2)[df1, c , on=c(d="b"), roll="最近的"]
。
它返回您需要的结果。我们需要做的就是用名称 XYZ
将其添加回 df1
。我们使用 :=
来做到这一点。
构造rolling join的思路是这样的(假设df1
和df2
都是数据表):
我们需要为 df1
的每一行获取一些值。这意味着,x[i]
语法中的 i = df1
。
df2[df1]
我们需要加入 df2$d
和 df1$b
。使用 on=
会是:
df2[df1, on=c(d="b")]
我们只需要 c
列。使用 j
只选择该列。
df2[df1, c, on=c(d="b")]
我们不需要equi-join 但roll to nearest join。
df2[df1, c, on=c(d="b"), roll="nearest"]
希望这对您有所帮助。
关于r - 根据来自其他数据框的最近邻居分配一个值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33562752/
我从 SpatialPolygonsDataFrame 开始,它包含用于创建加纳各地区 map 的数据(可在 http://www.diva-gis.org/datadown 获取)。我正在尝试创建一
我遇到了一个问题,我需要根据存储在前一个元素中的信息修改容器的元素。示例: 如果前一个 vector 元素可被 2 整除,则将当前元素乘以 10 vector -> [12, 11, 33, 10]
总的来说,我对脚本编写还很陌生。我正在编写一个 expect 脚本,它通过 ssh 进入 Cisco 交换机,并运行“show cdp neighbors”命令来获取连接到交换机的所有设备的列表。然后
我正在尝试比较节点的值。使用 flood-fill 算法,我能够垂直和水平检查网格的每个节点。现在我必须更新我的代码以检查位于对 Angular 线上的单元格,如下图所示: 红色是当前节点,黄色是需要
我使用预先计算的指标使用 Scikit-Learn 的最近邻/半径分类。这意味着,我将成对距离的 n_samples_train x n_samples_train 矩阵传递给分类器的拟合方法。 现在
我有一个大的稀疏图,我将其表示为邻接矩阵(100k x 100k 或更大),存储为边数组。具有(非稀疏)4 x 4 矩阵的示例: 0 7 4 0 example_array = [ [7,1,2],
从有向图中并给出两个顶点 (v, u) 我需要找到:共同的“出”邻居和共同的“入”邻居。 例如: import networkx as nx ghybrid = nx.DiGraph() ghybri
我正在使用 JavaScript 进行图像处理,我想知道是否有任何通用公式可以确定像素的 x 邻居。 我知道对于 3*3 的正方形,可以使用特定的 x 和 y 像素确定 8 个邻居。 (x-1,y-1
在 CentOS 6.4(内核 2.6.32)上,为什么下面的第二个 arping 调用会创建一个新的 ARP 表条目,而第一个不会?网络行为是相同的,我感到困惑的是,在我看来,系统调用实际上是等同的
我是一名优秀的程序员,十分优秀!