Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/r/75.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
R 将数据帧转换为矩阵并添加ID_R - Fatal编程技术网

R 将数据帧转换为矩阵并添加ID

R 将数据帧转换为矩阵并添加ID,r,R,我有一个数据帧df1,下面给出了一个示例 ID SNP1 SNP2 SNP3 SNP4 SNP5 ID1 1 2 2 0 0 ID2 0 1 0 1 0 ID3 1 2 2 1 1 ID4 0 1 1 0 0 ID5 2 0 2 1

我有一个数据帧df1,下面给出了一个示例

ID  SNP1    SNP2    SNP3    SNP4    SNP5
ID1   1       2      2       0       0
ID2   0       1      0       1       0
ID3   1       2      2       1       1
ID4   0       1      1       0       0
ID5   2       0      2       1       2
我想将其转换为下面给出的矩阵示例,并添加ID和SNP,以便将其与我的另一个协变量文件进行匹配,以便进一步分析

      ID1  ID2 ID3 ID4 ID5
SNP1    1   0   1   0   2
SNP2    2   1   2   1   0
SNP3    2   0   2   1   2
SNP4    0   1   1   0   1
SNP5    0   0   1   0   2

ID
列移动到rownames,然后将其删除,将数据帧转换为矩阵,并转置:

df1 SNP3 2 0 2 1 2
#>SNP401
#>SNP5 0 0 1 0 2
或者使用
tibble::column_to_rownames

库(tidyverse)
df1%as.matrix()%>%t()
mat1
#>ID1 ID2 ID3 ID4 ID5
#>SNP1 10 1 0 2
#>SNP2 2 1 2 1 0
#>SNP3 2 0 2 1 2
#>SNP401
#>SNP5 0 0 1 0 2

t()
无论如何都会强制转换为矩阵,但在强制中显式是一个好习惯。

ID
列移动到行名,然后将其删除,将数据帧转换为矩阵,并转置:

df1 SNP3 2 0 2 1 2
#>SNP401
#>SNP5 0 0 1 0 2
或者使用
tibble::column_to_rownames

库(tidyverse)
df1%as.matrix()%>%t()
mat1
#>ID1 ID2 ID3 ID4 ID5
#>SNP1 10 1 0 2
#>SNP2 2 1 2 1 0
#>SNP3 2 0 2 1 2
#>SNP401
#>SNP5 0 0 1 0 2

t()
无论如何都会强制到一个矩阵,但是在强制中显式是一个好习惯。

rownames
colnames
这样的函数也有
rownames
colnames
这样的函数也有
rownames。你不需要
t(df)
结构(t(df[-1]),dimnames=list(names(df[-1]),df[[1]])
难道你不需要
t(df)
结构(t(df[-1]),dimnames=list(names(df[-1]),df[[1]])
`colnames<-`(data, the_column_names)
`colnames<-`(t(df1[-1]), df1[[1]])
##      ID1 ID2 ID3 ID4 ID5
## SNP1   1   0   1   0   2
## SNP2   2   1   2   1   0
## SNP3   2   0   2   1   2
## SNP4   0   1   1   0   1
## SNP5   0   0   1   0   2
mat1 <- `colnames<-`(data, the_column_names)