我是一名硕士生,试图在我的论文中使用 R,但我对 R 非常陌生,而且我没有任何编程经验,所以请温柔!我有一堆 3D 坐标数据,我试图在 {geomorph} 包中使用它们来运行标准几何形态分析。为方便起见,我将数据拆分为较小的 .csv 文件。
我以以下方式设置了数据文件:
X1 - Y1 - Z1 - X2 - Y2 - Z2 - … - Z215
[Indiv.1] 323 - 87 - 68 - 323 - 87 - 68 - - 0
[Indiv.2] 363 - 88 - 81 - 363 - 88 - 81 - - 77
[Indiv.3] 335 - 77 - 70 - 335 - 77 - 70 - - 0
[Indiv.4] 359 - 71 - 81 - 359 - 71 - 81 - - 0
…
[Indiv.50] 366 - 71 - 92 - 367 - 72 - 91 - - 0
read.table
我使用很好(尺寸为 50 x 645)导入到 R ,我什至可以使用as.matrix
(保持 50 x 645 尺寸)将生成的数据框转换为矩阵。但是,当我使用 {geomorph} 将数据转换为数组(尺寸 215 x 3 x 50)arrayspecs
时,我收到超过 50 条警告说“数据长度不是行数的子倍数或倍数”。我一直在使用
> WM.array<-arrayspecs(WM.mat,215,3,byLand=F)
但是每次我运行这个命令时,我都会收到警告“数据长度不是行数的子倍数或倍数”。我相信 {geomorph} 想要一个 3D 数组中的数据,其中包含 3 列(X、Y、Z ) 和 215 行(最大坐标点数),第三维是 50 个人。
任何有关解决此问题的帮助将不胜感激,因为我找不到实际解决此错误的参考资料(至少没有一个我可以理解的参考资料)。提前致谢。