R 聚集函数丢失原始数据帧中的第一列

R 聚集函数丢失原始数据帧中的第一列,r,tidyr,R,Tidyr,我试图用gather整理数据框,但在整理过程中丢失了信息。采用以下数据帧: df <- data.frame(user = letters[1:10], score_1 = sample(1:20, 10), score_2 = sample(1:20, 10)) > head(df) user score_1 score_2 1 a 5 7 2 b 15 2 3 c 18 15 4 d

我试图用gather整理数据框,但在整理过程中丢失了信息。采用以下数据帧:

df <- data.frame(user = letters[1:10], score_1 = sample(1:20, 10), score_2 = sample(1:20, 10))

> head(df)
  user score_1 score_2
1    a       5       7
2    b      15       2
3    c      18      15
4    d       1      20
5    e      17      12
6    f       8      19

此输出不令人满意,因为它丢失了原始数据帧中的用户列。我做错了什么?

原因是“密钥”被指定为“用户”。这里的关键是以“long”格式命名创建的列名。如果我们将其指定为“user”,它已经是数据集中的一列,那么它将通过删除现有列进行更新

library(tidyr)
gather(df, key = "user1", value = "score", -user)

原因是“密钥”被指定为“用户”。这里的关键是以“long”格式命名创建的列名。如果我们将其指定为“user”,它已经是数据集中的一列,那么它将通过删除现有列进行更新

library(tidyr)
gather(df, key = "user1", value = "score", -user)
手册中的注释?收集

gather上的开发已经完成,对于新代码,我们建议切换到pivot_的时间更长,这更易于使用,功能更强大,并且仍处于积极开发中

这是解决办法

手册中的注释?收集

gather上的开发已经完成,对于新代码,我们建议切换到pivot_的时间更长,这更易于使用,功能更强大,并且仍处于积极开发中

这是解决办法


您的问题似乎是使用变量名作为键。试一试

gather(df, key = "usr", value = "score", score_1, score_2)

您的问题似乎是使用变量名作为键。试一试

gather(df, key = "usr", value = "score", score_1, score_2)