微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

重新排列 data.frame 的行名非字母

如何解决重新排列 data.frame 的行名非字母

set0 <- data.frame(A = c("A","B","C","D","A","B"),B = c("E","F","G","H","I","E","I"))

set0 <- table(set0)

result:
> set0
   B
A   E F G H I
  A 1 0 0 1 1
  B 1 1 0 0 1
  C 0 1 1 0 0
  D 0 0 1 1 0

我知道当我想更改列顺序时,我可以使用以下方法

set0 <- set0[,c(5,4,3,2,1)]

以上内容可以按我喜欢的任何方式更改列的顺序。

我正在寻找可以做完全相同但行名的东西。 有什么想法吗?

解决方法

在括号中,列定义在逗号的右侧(您所做的)。如果您还不知道,行定义在逗号的左侧。因此,您可以使用其中一种您最喜欢的方法:

set0[c(4,3,2,1),]

set0[4:1,]

set0[rev(seq(nrow(set0))),]

set0[c("D","C","B","A"),]

set0[rev(rownames(set0)),]

#    B
# A   E F G H I
#   D 0 0 1 1 0
#   C 0 1 1 0 0
#   B 1 1 0 0 1
#   A 1 0 0 1 1
,

您可以使用 factor 来定义顺序,例如,

table(
  transform(
    set0,A = factor(A,levels = sort(unique(A),decreasing = TRUE))
  )
)

给出

   B
A   E F G H I
  D 0 0 1 1 0
  C 0 1 1 0 0
  B 1 1 0 0 1
  A 1 0 0 1 1

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。