【发布时间】:2021-12-08 14:51:34
【问题描述】:
我在使用 R 中的“应用”函数执行逐行操作时遇到问题。我想计算两点之间的距离:
d <- function(x,y){
length <- norm(x-y,type="2")
as.numeric(length)
}
坐标由两个数据框给出:
start <- data.frame(
a = c(7, 5, 17, 1),
b = c(5, 17, 1, 2))
stop <- data.frame(
b = c(5, 17, 1, 2),
c = c(17, 1, 2, 1))
我的意思是计算开始和停止坐标给出的连续距离。我希望它像这样工作:
d(start[1,], stop[1,])
d(start[2,], stop[2,])
d(start[3,], stop[3,])
etc...
我试过了:
apply(X = start, MARGIN = 1, FUN = d, y = stop)
这带来了一些奇怪的结果。你能帮我找到合适的解决方案吗?我知道如何使用 dplyr rowwise() 函数执行操作,但我希望只使用 base。 你能解释一下为什么我用 apply() 会收到这么奇怪的结果吗?
【问题讨论】:
标签: r parallel-processing base rowwise