两列data frame转换成带行名的vector
2020-11-22 本文已影响0人
RaoZC
从两列的数据框转变成第一列为行名的向量,
两列数据读入,如下:
dataframe
要转变成如下向量:
vector
具体思路是先转变成矩阵,设定行名,提取数据,最后转变成向量。
设定行名后,会多了一列,因此需要将V1那一列删除。
image.png
操作如下:
geneList2 = read.table("01.geneList.txt")
g1 = as.matrix(geneList2)
rownames(g1)=g1[,1]
head(g1)
g2 = g1[,2]
is.vector(g2)
验证是否向量
这样就将一个两列的数据框转变成向量了。但这样转出来的向量并非数字向量,因为一列是字母,一列是数字,会默认转变成带了双引号的字符向量。
因此,如果需要数字向量,则可以如下操作:
geneList2 = read.table("01.geneList.txt")
g1 = as.matrix(geneList2)
g2 = apply(g1,2,as.numeric) ##转变成数字矩阵,但第一列全部为NA
rownames(g2)= g1[,1] ##删除NA列
g3 = g2[,2]
head(g3)
结果如下:
数字型向量