美文网首页js css html
聊聊R语言中t转置函数

聊聊R语言中t转置函数

作者: 小熊_wh | 来源:发表于2022-04-19 12:51 被阅读0次

t()
给定矩阵或数据框x,t函数返回x的转置。

在对data.frame进行t()操作时需要注意,避免数字变成字符串。

1. 矩阵转置

矩阵里面所有内容都是相同类型数据,使用t()不会有问题。

1.1 数值类型矩阵转置

x=matrix(1:9,3)
x
     [,1] [,2] [,3]
[1,]    1    4    7
[2,]    2    5    8
[3,]    3    6    9

转置后

t(x)
     [,1] [,2] [,3]
[1,]    1    2    3
[2,]    4    5    6
[3,]    7    8    9

可以看出来就是行变列,列变行了。数值型还是数值型。

1.2 字符串类型矩阵转置

再看看字符串类型的转置

y=matrix(LETTERS[1:9],3)
y
     [,1] [,2] [,3]
[1,] "A"  "D"  "G" 
[2,] "B"  "E"  "H" 
[3,] "C"  "F"  "I" 

转置后

t(y)
     [,1] [,2] [,3]
[1,] "A"  "B"  "C" 
[2,] "D"  "E"  "F" 
[3,] "G"  "H"  "I" 

可以看出来就是行变列,列变行了。字符串还是字符串。

2. 数据框转置

2.1 数值型数据框转置

数值型数据框和矩阵差不多,转置不会有太大问题。

x=data.frame(a=1:3,
             b=4:6,
             c=7:9)
x
  a b c
1 1 4 7
2 2 5 8
3 3 6 9

转置后

t(x)
  [,1] [,2] [,3]
a    1    2    3
b    4    5    6
c    7    8    9

但是转置前是data.frame,转置后的结果是matrix

class(x)
[1] "data.frame"
class(t(x))
[1] "matrix" "array" 

2.2 混合型数据框转置

如果data.frame里面既有数值型,又有字符串,t()转置后得到的matrix里面全部都会变成字符串。

x=data.frame(Name=c("A","B","C"),
             Score=c(70,80,90))
x
  Name Score
1    A    70
2    B    80
3    C    90
str(x)
'data.frame':   3 obs. of  2 variables:
 $ Name : chr  "A" "B" "C"
 $ Score: num  70 80 90

可以看到Name是chr类型,Score是num类型 。再来t()转置后看看

t(x)
      [,1] [,2] [,3]
Name  "A"  "B"  "C" 
Score "70" "80" "90"
str(t(x))
 chr [1:2, 1:3] "A" "70" "B" "80" "C" "90"
 - attr(*, "dimnames")=List of 2
  ..$ : chr [1:2] "Name" "Score"
  ..$ : NULL

可以看到原来的Score的数值型被转换成chr字符串类型了,不能再进行针对数值型的操作了。

这个时候如果还希望保持原来的数据类型,则需要用到as.data.frame函数

as.data.frame(t(x))
      V1 V2 V3
Name   A  B  C
Score 70 80 90
str(as.data.frame(t(x)))
'data.frame':   2 obs. of  3 variables:
 $ V1: chr  "A" "70"
 $ V2: chr  "B" "80"
 $ V3: chr  "C" "90"

这时候转化后的Score行里面的数字都是数值型了。

因此,在对保护复杂数据类型的data.frame进行转置时,最好使用as.data.frame(t(x))来操作。

相关文章

  • 聊聊R语言中t转置函数

    t()给定矩阵或数据框x,t函数返回x的转置。 在对data.frame进行t()操作时需要注意,避免数字变成字符...

  • LearningR-数据处理

    [TOC] 1. R自带函数 1.1 转置 使用函数t()可对一个矩阵或数据框进行转置,对于数据框,行名将变成变量...

  • 说说R语言的转置

    在群里看到了一个问题,他用R语言的转置函数t()对下面形式的数据进行了转置 转置之后的数据结构如下 他发现转置之后...

  • R语言中性价比最高的函数以及最贵的函数

    今天讲几个我喜欢的函数。 1.性价比最高的函数t() 中文名称转置,就是矩阵的行列转换先创建一个矩阵 用t()转置...

  • 【数据处理】数据转置命令 xpose

    在Excel中,粘贴选项中数据转置功能。 在R中,使用t()进行数据转置。 在STATA中,也有类似功能。由xpo...

  • tf.transpose()

    tf.transpose()为转置函数,其中参数perm用来设置需要转置的维度和顺序 img是一个2*2*3 (r...

  • Kotlin 常用标准函数

    let函数 函数定义 public inline fun T.let(block: (T) -> R...

  • 线性代数(5) 行列式的性质

    行列式转置 所谓转置就是把原来的行做成列就是转置的操作。转置符号就是用上标 T,矩阵的转置也是这样表示。有关转置在...

  • R programming - WEEK4

    参考文献 R语言实例-数据过滤grep正则表达式R 语言中,数据框依据不同列进行排序R语言rank函数详细解析R语...

  • R语言t转置行列名问题

    R语言t数据转置中一个简单的小问题,不注意就会犯错。 我有一个数据框如下: 此时,需要重新转换为数据框,即:dat...

网友评论

    本文标题:聊聊R语言中t转置函数

    本文链接:https://www.haomeiwen.com/subject/xeesertx.html