找回密码
 注册
查看: 5014|回复: 1

R语言中如何去除打印数组中的名字

  [复制链接]
发表于 2011-1-22 21:36:57 | 显示全部楼层 |阅读模式
为了显示一个大的数组或者矩阵,常常需要需要以一个完整的块的形式显示,同
时去掉数组名和编号。简单地去掉dimnames 属性是不能达到这个要求的,因为R 环
境会把空字符串赋给dimnames 属性。为了打印一个矩阵X
> temp <- X
> dimnames(temp) <- list(rep("", nrow(X)), rep("", ncol(X)))
> temp; rm(temp)
这个可以非常容易地通过下面的函数no.dimnames() 实现。它是利用一种\卷
绕"(wrap around)的方式实现的。这个例子还说明一些非常高效有用的用户函数可
以是非常简洁的。
no.dimnames <- function(a) {
## 为了更紧凑的打印输出,可以去除数组中的维度名字
d <- list()
l <- 0
for(i in dim(a)) {
d[[l <- l + 1]] <- rep("", i)
}
dimnames(a) <- d
a
}
通过这个函数,数组可以用一种紧凑的方式显示
> no.dimnames(X)
这对大的整数数组非常有用,因为这些数组表现出来的式样(pattern)可能比它
们的值更为重要。
回复

使用道具 举报

发表于 2015-10-22 22:29:24 | 显示全部楼层
  1. > matrix(runif(16),nc=4) %>% as.matrix(.,dimnames=list(rep('',nrow(.)),rep('',ncol(.))))
  2.           [,1]      [,2]      [,3]       [,4]
  3. [1,] 0.7484581 0.1370888 0.7646024 0.34425065
  4. [2,] 0.1454710 0.6143530 0.9334903 0.07063345
  5. [3,] 0.2672157 0.6504680 0.6357481 0.33052649
  6. [4,] 0.9842165 0.4476431 0.6835570 0.18115859
  7. > m <- matrix(runif(16),nc=4)
  8. > rownames(m) <- rep('',dim(m)[1])
  9. > names(m) <- rep('',dim(m)[2])
  10. > m
  11.        [,1]       [,2]       [,3]      [,4]
  12. 0.60778037 0.83548941 0.59982837 0.3078928
  13. 0.48323877 0.27404860 0.01510861 0.1530069
  14. 0.20687539 0.41210451 0.74180909 0.3776251
  15. 0.04269461 0.05120398 0.89737020 0.4658878
  16. attr(,"names")
  17. [1] "" "" "" "" NA NA NA NA NA NA NA NA NA NA NA NA
  18. > colnames(m) <- rep('',dim(m)[2])
  19. > m
  20.                                           
  21. 0.60778037 0.83548941 0.59982837 0.3078928
  22. 0.48323877 0.27404860 0.01510861 0.1530069
  23. 0.20687539 0.41210451 0.74180909 0.3776251
  24. 0.04269461 0.05120398 0.89737020 0.4658878
  25. attr(,"names")
  26. [1] "" "" "" "" NA NA NA NA NA NA NA NA NA NA NA NA
  27. > m <- matrix(runif(16),nc=4) %>% as.matrix(.,dimnames=list(rownames=rep('',nrow(.)),colnames=rep('',ncol(.))))
  28. > m
  29.           [,1]       [,2]      [,3]      [,4]
  30. [1,] 0.6300024 0.73849420 0.9306262 0.7582433
  31. [2,] 0.8353101 0.49880264 0.5067453 0.1094184
  32. [3,] 0.3225044 0.04808642 0.3209241 0.6930254
  33. [4,] 0.3411347 0.36887764 0.6131886 0.5393864
复制代码


这无名矩阵让咱想起多年前在COS认识的前辈兼高手 “无头衔站长
{:soso_e114:} 尝试了一下 rownames() 和 colnames() 也行哦!
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

手机版|小黑屋|生物统计家园 网站价格

GMT+8, 2024-12-4 01:27 , Processed in 0.027783 second(s), 17 queries .

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

快速回复 返回顶部 返回列表