我对R语言还很陌生,我正在尝试计算矩阵中两个变量的总距离(或所有数据点欧几里得距离之和)以及净距离(数据第一个点和最后一个点之间的欧几里得距离)。 关于我的数据背景,我的数据通常是一个包含5个变量的csv文件:细胞轨迹(称为A),时间间隔,每个细胞的X和Y位置,V=速度。每个数据大约有90条轨迹,每条轨迹应该被视为相互独立的。
dput(head(t1))
structure(list(A = c(0L, 0L, 0L, 0L, 0L, 0L), T = 0:5, X = c(668L,
668L, 668L, 668L, 668L, 668L), Y = c(259L, 259L, 259L, 259L,
259L, 259L), V = c(NA, 0, 0, 0, 0, 0)), .Names = c("A", "T",
"X", "Y", "V"), row.names = c(NA, 6L), class = "data.frame")
我之前不知道dist()函数,所以我创造了自己的函数:
GD.data <- function (trackdata)
{A= trackdata(, 1); V=trackdata(, 5);
for (i in min(A):max(A))
while (A<=i) {GD(i) = (sum (V)*(1/25))
return (GD(i))}
这个方法不起作用。我使用A作为轨迹的标识符,由于总距离也可以计算为:distance=velocity (t1-t0),我只需将所有速度乘以我的时间间隔(因为它是恒定的1/25秒)进行求和。
我应该如何使用dist()函数来识别我的A?我需要这样做,因为每个轨迹的计算都应该是独立的。谢谢!
trackdata
),并尝试使用例如(,1)
来引用列。你需要使用[
这个子集函数——即trackdata[,1]
将为您获取第一列。希望对你有所帮助! - Simon O'HanlonR
语言的语法。现在我们甚至无法确定trackdata
是否被正确组装。 - Carl Witthoft