两列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)

结果如下:


数字型向量
上一篇下一篇

猜你喜欢

热点阅读