如何调用data.frame的行?

如何调用data.frame的行?,r,do.call,R,Do.call,我正在将R代码翻译成Python。data.frame上有一个do.call命令,用于对其行进行排序。这是怎么做到的使我困惑 signary = matrix(c( 1, 1, 1,-1,-1,-1, 0, 0, 0, 1,-1, 0, 0, 1,-1, 0, 0, 0, 1,-1,-1, 0, 0, 0, 0, 0, 0, 1, 1,-

我正在将R代码翻译成Python。data.frame上有一个do.call命令,用于对其行进行排序。这是怎么做到的使我困惑

signary = matrix(c( 1, 1, 1,-1,-1,-1,
                    0, 0, 0, 1,-1, 0,
                    0, 1,-1, 0, 0, 0,
                    1,-1,-1, 0, 0, 0,
                    0, 0, 0, 1, 1,-1),
                 ncol=5)

do.call('order', as.data.frame(signary))

[1] 5 6 4 3 1 2
如何对行进行排序


谢谢

这将按第一列、第二列、第三列对行进行排序。如果您根据do.call的结果重新编制索引,您将得到

ii<-do.call('order', as.data.frame(signary))
signary[ii,]

#      [,1] [,2] [,3] [,4] [,5]
# [1,]   -1   -1    0    0    1
# [2,]   -1    0    0    0   -1
# [3,]   -1    1    0    0    1
# [4,]    1    0   -1   -1    0
# [5,]    1    0    0    1    0
# [6,]    1    0    1   -1    0

iI如何确定顺序?符号矩阵是一种通过do.call(…)命令传递的矩阵。此矩阵中的列可以互换,但行不能互换。do.call(…)命令给出的列组用于排列打印标签。我不确定它是否回答了你的问题。谢谢,太好了。我可以使用pandas sort_索引找到一个Python等价物:signary_df=pd.DataFrame(signary);ii=np.array(符号排序索引(by=range(0,符号形状[1]),升序=True.index)
ii<-order(signary[,1], signary[,2], signary[,3], signary[,4], signary[,5])
ii
# [1] 5 6 4 3 1 2