|
发表于 2022-9-1 21:22:26
|
查看: 1089 |
回复: 0
不同数据类型之间的转换
一般的 R 函数只能接受固定类型的数据,例如绘制热图,输入数据必须是数值型向量,数据框则不行,线性回归分析中,输入数据必须为一个数据框。因此,需要熟悉各种数据类型之间的转换。此外,在做数据转换的过程中,还要记住,有些数据只能单方向进行转换,而不能相互转换,例如部分数据框无法转换为数值型矩阵。
- getwd()
- setwd('/home/xhs/jyxy/11-rbasic/')
- dir()
- dir()[21]
- x <- read.csv('heatmap.csv')
- head(x)
- class(x)
- is.matrix(x)
- methods(is)
- methods(plot)
- rownames(x) <- x[,1]
- ncol(x)
- x <- x[,-1]
- x <- as.matrix(x)
- heatmap(x)
- ls()
- rm(list=ls())
- x <- read.csv('CountMatrix.csv',row.names = 1)
- class(x)
- nrow(x)
- colnames(x)
- x <- x[,c(1,3,5,7,2,4,6,8)]
- colSums(x)
- y <- apply(x,2,sum)
- barplot(y,las=2)
- opar <- par('mar')
- par(mar= c(8.1,4.1,4.1,2.1))
- par('mar')
- barplot(y,las=2)
- y
- x[1:4,]
- x[10:14,]
- rbind(x[1:4,],x[10:14,])
- rbind(x[1:4,1:4],x[10:14,1:4])
- rbind(x[1:4,],x[1:4,])
- rbind(x[1:4,2],x[1:4,3])
- cbind(x[1:4,2],x[1:4,3])
- cbind(x[1:4,1:5],x[1:4,5:8])
- rbind(x,y)
- tail(rbind(x,cTotal = y))
- x <- rbind(x,cTotal = y)
- z <- rowSums(x)
- x <- cbind(x,rTotal = z)
- x <- x[x$rTotal > 0,]#33470
- x <- x[x$rTotal > 10,]#22009
复制代码- #向量和矩阵之间相互转换:给向量加上维度。
- x <- c(1:10)
- dim(x) <- c(2,5)
- #向量和数据框之间相互转换:data.frame,cbind 和 rbind 将向量转换为数据框,取出数据框的
- # 每一列为一个向量。
- state <- data.frame(state.name,state.abb,state.division,state.area)
- #数据框和矩阵之间相互转换:
- #as.matrix()将数据框转换为矩阵
- iris.mat <- as.matrix(iris[1:4])
- #as.data.frame()矩阵转换为数据框。
- state <- as.data.frame(state.x77)
- #向量和因子之间相互转换;as.factor()函数。
- mtcars$cyl <- as.factor(mtcars$cyl)
- #修改因子的水平和标签;
- mtcars$cyl <- factor(mtcars$cyl,levels = c(4,6,8),labels =
- c("four","six","eight"))
复制代码
|
|