【问题标题】:R Spread Error: Duplicate identifiers for rowsR传播错误:行的重复标识符
【发布时间】:2019-06-01 17:58:47
【问题描述】:

使用数据集df:

 df
 confint        row Index
 0.3407,0.4104    1     1
 0.2849,0.4413    2     2
 0.2137,0.2674    3     3
 0.1910,0.4575    4     1
 0.4039,0.4905    5     2
 0.403,0.4822     6     3
 0.0301,0.0646    7     1
 0.0377,0.0747    8     2
 0.0835,0.0918    9     3
 0.0437,0.0829   10     1
 0.0417,0.0711   11     2
 0.0718,0.0798   12     3
 0.0112,0.0417   13     1
 0.019,0.0237    14     2
 0.0213,0.0293   15     3
 0.0121,0.0393   16     1
 0.0126,0.0246   17     2
 0.0318,0.0428   18     3
 0.0298,0.0631   19     1
 0.018,0.0202    20     2
 0.1031,0.1207   21     3

这应该是一个相当容易从长格式转换为宽格式的数据集,即 7(行)x 3(列)数据框。结果应该有 3 个以 Index 命名的列和 7 行 (21/3 = 7)。代码如下:

df <- spread(df,Index, confint, convert = FALSE)

但是,通过使用 Spread() 我收到以下错误:

错误:行 (1, 4, 7, 10, 13, 16, 19), (2, 5, 8, 11, 14, 17, 20), (3, 6, 9, 12, 15、18、21)

任何帮助将不胜感激!

【问题讨论】:

  • 无法重现。 spread(df, Index, confint) 为我工作。你的尝试也很好spread(df,Index, confint, convert = FALSE)

标签: r dplyr tidyr


【解决方案1】:

我们需要创建一个序列列然后spread

library(tidyverse)
df %>%
  group_by(Index) %>%
  mutate(ind = row_number()) %>%
  spread(Index, confint, convert = FALSE)

注意:这将是原始数据集中的问题,而不是帖子中显示的示例数据

【讨论】:

    猜你喜欢
    • 2018-10-18
    • 2018-06-01
    • 2018-07-01
    • 1970-01-01
    • 2016-06-13
    • 2018-02-04
    • 2017-09-01
    • 2018-11-09
    • 1970-01-01
    相关资源
    最近更新 更多