R:如何将solve_LSAP转换为数据帧?

R:如何将solve_LSAP转换为数据帧?,r,R,我正在尝试做一个大的作业问题,并且正在使用LSAP。它可以工作,但我正在尝试将输出放入一个数据帧中,以便我可以用它做更多的工作。但是,函数的文档中说“一个类的对象”solvelsap“具有行到列的最佳分配”,没有关于数据的进一步信息。我似乎无法打开类来将数据分解成更有用的形式 我提供了他们的示例代码 x <- matrix(c(5, 1, 4, 3, 5, 2, 2, 4, 4), nrow = 3) y <- solve_LSAP(x, maximum = FALSE) y 我有

我正在尝试做一个大的作业问题,并且正在使用LSAP。它可以工作,但我正在尝试将输出放入一个数据帧中,以便我可以用它做更多的工作。但是,函数的文档中说“一个类的对象”solvelsap“具有行到列的最佳分配”,没有关于数据的进一步信息。我似乎无法打开类来将数据分解成更有用的形式

我提供了他们的示例代码

x <- matrix(c(5, 1, 4, 3, 5, 2, 2, 4, 4), nrow = 3)
y <- solve_LSAP(x, maximum = FALSE)
y
我有200多个作业,基线输出对我来说根本不可用。我如何将其转换为数据帧,或者至少转换为如下所示的矩阵

Row Column
 1    3
 2    1
 3    2

solve_LSAP
按每行返回列索引,因此包含重建所需的全部内容:

len <- length(y)

parsedMat <- cbind(
  1:len,
  as.integer(y)
)

parsedMat

     [,1] [,2]
[1,]    1    3
[2,]    2    1
[3,]    3    2

至于结构,solve_LSAP并不是一个真正复杂的对象,它本质上是一个数值向量,你可以通过以下方式看到:

is.numeric(y)

[1] TRUE
或:


您还可以轻松地将
solvedMat
parsedMat
转换为数据帧,例如
parsedMat

setNames(as.data.frame(parsedMat), c('Row', 'Column'))

  Row Column
1   1      3
2   2      1
3   3      2

solve_LSAP
按每行返回列索引,因此包含重建所需的全部内容:

len <- length(y)

parsedMat <- cbind(
  1:len,
  as.integer(y)
)

parsedMat

     [,1] [,2]
[1,]    1    3
[2,]    2    1
[3,]    3    2

至于结构,solve_LSAP并不是一个真正复杂的对象,它本质上是一个数值向量,你可以通过以下方式看到:

is.numeric(y)

[1] TRUE
或:


您还可以轻松地将
solvedMat
parsedMat
转换为数据帧,例如
parsedMat

setNames(as.data.frame(parsedMat), c('Row', 'Column'))

  Row Column
1   1      3
2   2      1
3   3      2

谢谢,这让我找到了我需要的地方。我就是不知道怎么把数据拿出来。谢谢,这让我找到了我需要的地方。我就是不知道怎么把数据拿出来。
str(y)

'solve_LSAP' num [1:3] 3 1 2
setNames(as.data.frame(parsedMat), c('Row', 'Column'))

  Row Column
1   1      3
2   2      1
3   3      2