0

我有一个矩阵,想对行重新排序,例如,第 5 行可以切换到第 2 行,第 2 行可以切换到第 7 行。我有一个列表,所有行名都用分隔,\n我想我可以以某种方式将它读入 R (它是一个 txt 文件),然后只使用矩阵的名称(在我的情况下为“k”并执行类似的操作k[txt file,]-> k_new ,但这不起作用,因为标识符不是第一列而是定义为行名。

4

1 回答 1

1
k[ c(1,5,3,4,7,6,2), ] #But probably not what you meant....

或者也许(如果您的“k”对象行名不是默认的字符数字序列):

k[ char_vec , ]   # where char_vec will get matched to the row names.

(dat <- structure(list(person = c(1, 1, 1, 1, 2, 2, 2, 2), time = c(1, 
2, 3, 4, 1, 2, 3, 4), income = c(100, 120, 150, 200, 90, 100, 
120, 150), disruption = c(0, 0, 0, 1, 0, 1, 1, 0)), .Names = c("person", 
"time", "income", "disruption"), row.names = c("h", "g", "f", 
"e", "d", "c", "b", "a"), class = "data.frame"))

 dat[ c('h', 'f', 'd', 'b') , ]
 #-------------
  person time income disruption
h      1    1    100          0
f      1    3    150          0
d      2    1     90          0
b      2    3    120          1
于 2012-08-30T20:08:15.837 回答