生信人

找回密码
立即注册
搜索
热搜: 活动 交友 discuz
发新帖

0

收听

12

听众

318

主题
发表于 2022-9-1 21:22:26 | 查看: 1089| 回复: 0
不同数据类型之间的转换
       一般的 R 函数只能接受固定类型的数据,例如绘制热图,输入数据必须是数值型向量,数据框则不行,线性回归分析中,输入数据必须为一个数据框。因此,需要熟悉各种数据类型之间的转换。此外,在做数据转换的过程中,还要记住,有些数据只能单方向进行转换,而不能相互转换,例如部分数据框无法转换为数值型矩阵。

  1. getwd()
  2. setwd('/home/xhs/jyxy/11-rbasic/')
  3. dir()
  4. dir()[21]
  5. x <- read.csv('heatmap.csv')
  6. head(x)
  7. class(x)
  8. is.matrix(x)
  9. methods(is)
  10. methods(plot)

  11. rownames(x) <- x[,1]
  12. ncol(x)
  13. x <- x[,-1]
  14. x <- as.matrix(x)
  15. heatmap(x)
  16. ls()
  17. rm(list=ls())
  18. x <- read.csv('CountMatrix.csv',row.names = 1)
  19. class(x)
  20. nrow(x)
  21. colnames(x)
  22. x <- x[,c(1,3,5,7,2,4,6,8)]
  23. colSums(x)
  24. y <- apply(x,2,sum)
  25. barplot(y,las=2)
  26. opar <- par('mar')
  27. par(mar= c(8.1,4.1,4.1,2.1))
  28. par('mar')
  29. barplot(y,las=2)

  30. y

  31. x[1:4,]
  32. x[10:14,]
  33. rbind(x[1:4,],x[10:14,])
  34. rbind(x[1:4,1:4],x[10:14,1:4])
  35. rbind(x[1:4,],x[1:4,])
  36. rbind(x[1:4,2],x[1:4,3])
  37. cbind(x[1:4,2],x[1:4,3])
  38. cbind(x[1:4,1:5],x[1:4,5:8])

  39. rbind(x,y)
  40. tail(rbind(x,cTotal = y))
  41. x <- rbind(x,cTotal = y)
  42. z <- rowSums(x)
  43. x <- cbind(x,rTotal = z)
  44. x <- x[x$rTotal > 0,]#33470
  45. x <- x[x$rTotal > 10,]#22009
复制代码
  1. #向量和矩阵之间相互转换:给向量加上维度。
  2. x <- c(1:10)
  3. dim(x) <- c(2,5)
  4. #向量和数据框之间相互转换:data.frame,cbind 和 rbind 将向量转换为数据框,取出数据框的
  5. # 每一列为一个向量。
  6. state <- data.frame(state.name,state.abb,state.division,state.area)
  7. #数据框和矩阵之间相互转换:
  8. #as.matrix()将数据框转换为矩阵
  9. iris.mat <- as.matrix(iris[1:4])
  10. #as.data.frame()矩阵转换为数据框。
  11. state <- as.data.frame(state.x77)
  12. #向量和因子之间相互转换;as.factor()函数。
  13. mtcars$cyl <- as.factor(mtcars$cyl)
  14. #修改因子的水平和标签;
  15. mtcars$cyl <- factor(mtcars$cyl,levels = c(4,6,8),labels =
  16.                        c("four","six","eight"))
复制代码

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

QQ|Archiver|手机版|小黑屋|生信人 ( 萌ICP备20244422号 )

GMT+8, 2024-11-23 16:03 , Processed in 0.079262 second(s), 30 queries .

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

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