数据转换

2022-10-25 19:47:49 浏览数 (2)

不同数据类型之间的转换

一般的 R 函数只能接受固定类型的数据,例如绘制热图,输入数据必须是数值型向量,数据框则不行,线性回归分析中,输入数据必须为一个数据框。因此,需要熟悉各种数据类型之间的转换。此外,在做数据转换的过程中,还要记住,有些数据只能单方向进行转换,而不能相互转换,例如部分数据框无法转换为数值型矩阵。

代码语言:javascript复制
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
代码语言:javascript复制
#向量和矩阵之间相互转换:给向量加上维度。
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"))

写在最后:有时间我们会努力更新的。大家互动交流可以前去论坛,地址在下面,复制去浏览器即可访问,弥补下公众号没有留言功能的缺憾。原地址暂未启用(bioinfoer.com)。

代码语言:javascript复制
sx.voiceclouds.cn

有些板块也可以预设为大家日常趣事的分享等,欢迎大家来提建议。

0 人点赞