A:如何在所有列上使用pivot_longer()


R 中Tidyr包的ivot_longer()函数可用于将数据块从宽格式旋转为长格式。

如果要使用此函数以长格式旋转数据框中的所有列,可以使用以下语法:

 library (tidyr)

df_long <- pivot_longer(df, cols = everything())

请注意, cols参数指定要旋转哪些列,而everything()指定我们要旋转每一列。

下面的例子展示了如何在实际中使用这个功能。

相关:长数据或宽数据:有什么区别?

示例:在 R 中的所有列上使用ivot_longer()

假设我们在 R 中有以下数据框,显示不同篮球运动员在三场不同比赛中的得分:

 #create data frame
df <- data. frame (game1=c(20, 30, 33, 19, 22, 24),
                 game2=c(12, 15, 19, 19, 20, 14),
                 game3=c(22, 29, 18, 12, 10, 11))

#view data frame
df

  game1 game2 game3
1 20 12 22
2 30 15 29
3 33 19 18
4 19 19 12
5 22 20 10
6 24 14 11

数据帧目前采用宽格式。

但是,假设我们希望通过旋转所有三列来将数据框旋转为长格式。

我们可以使用以下语法来做到这一点:

 library (tidyr)

#pivot all columns into long data frame
df_long <- pivot_longer(df, cols = everything())

#view long data frame
df_long

# A tibble: 18 x 2
   name value
    
 1 game1 20
 2 game2 12
 3 game3 22
 4 game1 30
 5 game2 15
 6 game3 29
 7 game1 33
 8 game2 19
 9 game3 18
10 game1 19
11 game2 19
12 game3 12
13 game1 22
14 game2 20
15 game3 10
16 game1 24
17 game2 14
18 game3 11

请注意,列名称game1game2game3现在用作名为“name”的新列中的值,并且这些原始列中的值放置在名为“value”的新列中。

最终结果是一个长数据帧。

注意:您可以在此处找到pivot_longer()函数的完整文档。

其他资源

以下教程解释了如何在 R 中使用 Tidyr 包中的其他常用函数:

如何在R中使用pivot_wider()
如何使用R中的Spread函数
如何使用R中的collect函数
如何在 R 中使用单独的函数
如何使用R中的Unite函数

添加评论

您的电子邮箱地址不会被公开。 必填项已用*标注