如何在R数据框中找到最小值和索引并将其重组为Tidy数据框

文切克

我正在使用 R,并构建了一个矩阵来计算 n 个位置之间的距离。我需要计算每个位置的最近邻,并填充位置 ID、最近邻 ID 和距离的结果矩阵。

这是 data.frame(注意应用程序代码使用一个函数来计算与 Long/Lat 的距离,下面是结果数据框。)我还将距离分配给它自己 999 所以它不会被选为最近的邻居.

distdf <- data.frame("New York" = c(0, 713, 2451, 748), "Chicago" = c(713, 0, 1745, 587), "Los Angeles" = c(2451,1745, 0, 1936), "Atlanta" = c(748, 587, 1936, 0), row.names = c("New York", "Chicago", "Los Angeles", "Atlanta"))
 
distdf[distdf ==0]<- 9999

从这里,我想找到最小距离和具有该值的行。所以结果应该是这样的:

result<- data.frame("NearNeigh" = c("Chicago", "Atl", "Atl", "Chic"), "Dist" =c(713, 587, 1936, 587), row.names = c("New York","Chicago", "Los Angeles", "Atlanta"))

我已经能够通过这样的事情找到最近的邻居,但我担心我走错了路:

l1<- apply(distdf, 2, which.min)

l1df<- as.data.frame(l1)
罗纳克·沙阿

l1给出每列中最小值的索引。要获得最小值,请使用min.

您可以将最终数据帧创建为。

l1 <- apply(distdf, 2, which.min)
l2 <- apply(distdf, 2, min)

result <- data.frame(City = names(distdf), 
                     NearNeigh = rownames(distdf)[l1], 
                     Dist = l2, row.names = NULL)

result
#         City NearNeigh Dist
#1    New.York   Chicago  713
#2     Chicago   Atlanta  587
#3 Los.Angeles   Chicago 1745
#4     Atlanta   Chicago  587

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

如何在r的数据框中找到数字wrt的最大值和最小值?

如何在符合特定条件的数据框中找到最小值并返回特定列

如何在给定的熊猫数据框中找到具有最小值的行?

在双索引Groupby数据框中找到最小值的内部索引

在数据框中找到第二个最小值的索引

R - 如何在数据框中每行找到三个最小值?

如何在R中的数据框中返回包含最小值的列的索引

如何在数据框中的变量中找到一组中最大值和最小值的差异

在数据框中找到某些值的索引,并将其放在单独的列中

如何在数据框中找到具有列的最小值的第一行

如何从数据框的两列除中找到最小值

如何切片数据框并将其重组为新的数据框

R:如何识别数据框中所有组的最小值的索引

如何在熊猫数据框中设置最小值和最大值?

有没有办法在多个数据框中找到最小值?

如何在R中重组数据框

如何在pandas数据框列中找到已知值的索引?

如何在熊猫数据框中找到两个索引之间的最大值

如何在 r 中返回数据框中的最小值列表?

如何在熊猫数据框中找到下限和上限?

如何在数据框中找到值为字符串类型的单元格

如何使用postgres在jsonb数据中找到最小值?

从数据框中的索引获取最小值

为数据框中的每一行找到n个最小值

为多索引数据框的每个级别查找最小值

如何在R中的数据框中找到列的最大值?

熊猫数据框的最大值和最小值

如何在R的数据框中找到主要元素和次要元素

如何在两个数据框之间找到相同的索引并将其组合到一个新的数据框Python 3中