宽数据 & 长数据

2023-08-21  本文已影响0人  LET149

1. 宽数据转换成长数据

https://www.jianshu.com/p/65d71b2f3f56

tidyr::gather()

gather(data=, key=, value=, -column)

data=: 用来转换的数据框
key=: 字符串; 转换后,被转换列名形成新列的列名
value=: 字符串; 转换后,之前所有值形成新列的列名
-column: 单个字符串或者字符串向量,表示不参与转换(保留)的列名

> kk <- iris[1:5,]
> kk
  Sepal.Length Sepal.Width Petal.Length Petal.Width Species
1          5.1         3.5          1.4         0.2  setosa
2          4.9         3.0          1.4         0.2  setosa
3          4.7         3.2          1.3         0.2  setosa
4          4.6         3.1          1.5         0.2  setosa
5          5.0         3.6          1.4         0.2  setosa
> 
> gather(kk, key="type", value="number", -"Species")   '#保留其中一列
   Species         type number
1   setosa Sepal.Length    5.1
2   setosa Sepal.Length    4.9
3   setosa Sepal.Length    4.7
4   setosa Sepal.Length    4.6
5   setosa Sepal.Length    5.0
6   setosa  Sepal.Width    3.5
7   setosa  Sepal.Width    3.0
8   setosa  Sepal.Width    3.2
9   setosa  Sepal.Width    3.1
10  setosa  Sepal.Width    3.6
11  setosa Petal.Length    1.4
12  setosa Petal.Length    1.4
13  setosa Petal.Length    1.3
14  setosa Petal.Length    1.5
15  setosa Petal.Length    1.4
16  setosa  Petal.Width    0.2
17  setosa  Petal.Width    0.2
18  setosa  Petal.Width    0.2
19  setosa  Petal.Width    0.2
20  setosa  Petal.Width    0.2
> 
> gather(kk, key="type", value="number", -c("Species","Petal.Length"))   #保留其中两列
   Petal.Length Species         type number
1           1.4  setosa Sepal.Length    5.1
2           1.4  setosa Sepal.Length    4.9
3           1.3  setosa Sepal.Length    4.7
4           1.5  setosa Sepal.Length    4.6
5           1.4  setosa Sepal.Length    5.0
6           1.4  setosa  Sepal.Width    3.5
7           1.4  setosa  Sepal.Width    3.0
8           1.3  setosa  Sepal.Width    3.2
9           1.5  setosa  Sepal.Width    3.1
10          1.4  setosa  Sepal.Width    3.6
11          1.4  setosa  Petal.Width    0.2
12          1.4  setosa  Petal.Width    0.2
13          1.3  setosa  Petal.Width    0.2
14          1.5  setosa  Petal.Width    0.2
15          1.4  setosa  Petal.Width    0.2

2. 长数据转换成宽数据

https://www.jianshu.com/p/65d71b2f3f56

tidyr::spread() 或者 tidyr::pivot_wider()

Note: 均出现严重报错

3. 将一列数据拆分成多列

seperate(data=, column_name, c("new_column_1","new_column_2")


上一篇 下一篇

猜你喜欢

热点阅读