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