R语言 我怎么能纠正一个传播错误,行到列?

5uzkadbs  于 2023-04-03  发布在  其他
关注(0)|答案(1)|浏览(80)

iam尝试使用函数spread(tidyr)将行传递到列,并给出下一个错误:spread()中的错误:!每行输出必须由唯一的键组合标识。
我有这个数据框
| 月|酸碱度|
| --------------|--------------|
| 一月|七、二|
| 一月|五、二|
| 二月|4.0版|
| 二月|七、三|
| 行军|七、一|
| 行军|5.0版|
pH值约为8.000,1月至12月,每月约为700,但时间不同。
我要这个
| 一月|二月|行军|
| --------------|--------------|--------------|
| 7.2 |4.0版|七、一|
| 5.2 |七、三|5.0版|

monwx1rj

monwx1rj1#

发生这种情况是因为没有唯一标识符,而且spread已被弃用,因此您可以使用pivot_wider

数据

data <-
tibble::tribble(
      ~Month, ~pH,
   "January", 7.2,
   "January", 5.2,
  "February",   4,
  "February", 7.3,
     "March", 7.1,
     "March",   5
  )

编号

library(dplyr)
library(tidyr)

data %>% 
  group_by(Month) %>% 
  mutate(id = row_number()) %>% 
  pivot_wider(names_from = Month,values_from = pH)

输出

# A tibble: 2 x 4
     id January February March
  <int>   <dbl>    <dbl> <dbl>
1     1     7.2      4     7.1
2     2     5.2      7.3   5

相关问题