R tidyr spread не работает с фреймом данных

#r #tidyr

#r #tidyr

Вопрос:

Я пытаюсь распространить фрейм данных, используя tidyr::spread , но появляется странная ошибка. Я действительно не понимаю, что происходит. Я много раз пытался перестроить фрейм данных и не имею возможного объяснения. Я также пытался опубликовать свои данные, но переполнение стека жалуется, что это слишком много кода.

Моя ошибка:

 > test <-spread(nodes, Level)
Error: object '' not found
Run `rlang::last_error()` to see where the error occurred.
  

Мои данные:

 dput(nodes)
structure(list(Gender = c("F", "F", "F", "M", "F", "F", "M", 
"F", "F", "F", "M", "M", "M", "M", "F", "F", "F", "F", "F", "M", 
"M", "M", "M", "M", "M", "M", "M", "F", "M", "F", "M", "F", "M", 
"M", "M", "M", "F", "M", "F", "F", "F", "F", "M", "F", "F", "F", 
"F", "M", "M", "F", "F", "F", "M", "M", "F", "M", "M", "M", "M", 
"M", "M", "F", "F", "M", "F", "M", "M", "M", "F", "M", "F", "F", 
"M", "M", "M", "F", "F", "F", "M", "F", "F", "F", "F", "F", "F", 
"F", "M", "M", "F", "M", "F", "F", "M", "F", "M", "F", "M", "M", 
"M", "M", "M", "F", "F", "M", "F", "F", "F", "M", "F", "F", "M", 
"M", "F", "M", "M", "M", "M", "M", "M", "F", "F", "M", "M", "F", 
"F", "F", "F", "F", "M", "M", "M", "M", "M", "F", "M", "F", "M", 
"F", "F", "M", "M", "F", "M", "F", "M", "M", "M", "F", "M", "M", 
"M", "F", "F", "F", "F", "M", "F", "M", "F", "F", "M", "F", "F", 
"M", "F", "M", "F", "M", "M", "F", "M", "M", "F", "F", "F", "M", 
"M", "M", "F", "M", "F", "F", "F", "F", "M", "F", "M", "F", "F", 
"F", "M", "M", "F", "M", "M", "F", "F", "M", "F", "F", "F", "M", 
"F", "M", "F", "M", "M", "F", "F", "M", "F", "F", "M", "F", "F", 
"M", "M", "F", "M", "M", "F", "M", "F", "F", "M", "M", "M", "F", 
"M", "F", "F", "F", "M", "M", "F", "N", "F", "M", "F", "F", "M", 
"M", "F", "M", "M", "M", "F", "M", "F", "F", "F", "F", "M", "F", 
"F", "F", "M", "M", "F", "F", "F", "F", "M", "F", "M", "F", "F", 
"M", "F", "F", "M", "M", "F", "F", "F", "M", "M", "M", "M", "M", 
"M", "F", "F", "F", "M", "F", "F", "M", "M", "F", "M", "F", "F", 
"F", "M", "M", "F", "F", "M", "F", "M", "M", "F", "F", "F", "F", 
"M", "M", "F", "F", "F", "F", "F", "F", "M", "F", "F", "M", "F", 
"M", "F", "F", "M", "M", "F", "F", "F", "M", "M", "M", "M", "M", 
"M", "F", "M", "F", "F", "M", "M", "F", "F", "M", "M", "M", "M", 
"M", "M", "M", "M", "M", "M", "F", "M", "M", "M", "F", "M", "M", 
"F", "M", "F", "F", "M", "M", "F", "M", "F", "F", "M", "F", "F", 
"F", "F", "M", "M", "F", "F", "M", "N", "F", "M", "F", "F", "M", 
"M", "M", "M", "M", "F", "F", "F", "M", "M", "M", "F", "F", "F", 
"F", "F", "F", "M", "F", "F", "F", "F", "M", "F", "F", "F", "F", 
"M", "F", "M", "F", "F", "F", "F", "F", "M", "F", "M", "M", "M", 
"M", "F", "F", "F", "M", "M", "F", "M", "F", "M", "M", "F", "M", 
"F"), Level = c(0L, 1L, 2L, 2L, 2L, 3L, 1L, 2L, 1L, 2L, 3L, 2L, 
2L, 2L, 2L, 3L, 3L, 3L, 2L, 2L, 1L, 2L, 2L, 3L, 4L, 2L, 3L, 2L, 
1L, 2L, 2L, 2L, 3L, 2L, 3L, 4L, 1L, 2L, 2L, 3L, 1L, 3L, 1L, 2L, 
3L, 4L, 2L, 1L, 2L, 2L, 2L, 3L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 
1L, 1L, 1L, 1L, 2L, 1L, 2L, 3L, 2L, 1L, 1L, 2L, 1L, 1L, 1L, 1L, 
1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 2L, 1L, 1L, 1L, 1L, 2L, 
1L, 1L, 1L, 1L, 1L, 1L, 1L, 2L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 
2L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 
2L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 
1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 
1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 
1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 
1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 
1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 
1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 
1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 2L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 
1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 
1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 
1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 
1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 2L, 1L, 1L, 1L, 1L, 1L, 
1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 
1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 
1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 
1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 
1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 
1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 
1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 
1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L), USER.ID = c("U01F", "U02F", 
"U01F", "U01M", "U03F", "U04F", "U02M", "U01F", "U05F", "U01F", 
"U03M", "U04M", "U05M", "U06M", "U06F", "U05F", "U05F", "U05F", 
"U07F", "U06M", "U07M", "U08M", "U09M", "U07M", "U09M", "U10M", 
"U07M", "UO1F", "U11M", "U08F", "U12M", "U09F", "U11M", "U13M", 
"U11M", "U13M", "U10F", "U14M", "U11F", "U12F", "U13F", "U13F", 
"U15M", "U14F", "U01F", "U14F", "U15F", "U16M", "U17M", "U16F", 
"U17F", "U01F", "U18M", "U19M", "U18F", "U20M", "U21M", "U22M", 
"U23M", "U24M", "U25M", "U19F", "U20F", "U26M", "U21F", "U27M", 
"U28M", "U27M", "U22F", "U29M", "U23F", "U23F", "U30M", "U31M", 
"U32M", "U24F", "U25F", "U26F", "U33M", "U27F", "U28F", "U29F", 
"U30F", "U31F", "U32F", "U33F", "U34M", "U35M", "U34F", "U36M", 
"U35F", "U36F", "U37M", "U37F", "U38M", "U38F", "U39M", "U40M", 
"U41M", "U42M", "U43M", "U39F", "U40F", "U44M", "U41F", "U42F", 
"U43F", "U45M", "U44F", "U45F", "U46M", "U47M", "U46F", "U48M", 
"U49M", "U50M", "U51M", "U52M", "U53M", "U47F", "U48F", "U54M", 
"U55M", "U49F", "U01F", "U50F", "U51F", "U52F", "U56M", "U57M", 
"U58M", "U59M", "U60M", "U53F", "U61M", "U54F", "U62M", "U55F", 
"U56F", "U63M", "U64M", "U57F", "U65M", "U58F", "U66M", "U67M", 
"U68M", "U59F", "U69M", "U70M", "U71M", "U60F", "U61F", "U62F", 
"U63F", "U72M", "U64F", "U73M", "U65F", "U66F", "U74M", "U67F", 
"U68F", "U75M", "U69F", "U76M", "U70F", "U77M", "U78M", "U71F", 
"U79M", "U80M", "U72F", "U73F", "U74F", "U81M", "U82M", "U83M", 
"U75F", "U84M", "U76F", "U77F", "U78F", "U79F", "U85M", "U80F", 
"U86M", "U81F", "U82F", "U83F", "U87M", "U04M", "U84F", "U88M", 
"U89M", "U85F", "U86F", "U90M", "U87F", "U88F", "U89F", "U91M", 
"U90F", "U92M", "U91F", "U93M", "U94M", "U92F", "U93F", "U95M", 
"U94F", "U95F", "U96M", "U96F", "U97F", "U97M", "U98M", "U98F", 
"U99M", "U100M", "U99F", "U101M", "U100F", "U101F", "U102M", 
"U103M", "U104M", "U102F", "U105M", "U103F", "U104F", "U105F", 
"U106M", "U107M", "U106F", "U01N", "U107F", "U108M", "U108F", 
"U109F", "U109M", "U110M", "U110F", "U111M", "U112M", "U113M", 
"U111F", "U114M", "U112F", "U113F", "U114F", "U115F", "U115M", 
"U116F", "U117F", "U118F", "U116M", "U117M", "U119F", "U120F", 
"U121F", "U122F", "U118M", "U123F", "U119M", "U124F", "U125F", 
"U120M", "U126F", "U127F", "U121M", "U122M", "U128F", "U129F", 
"U130F", "U123M", "U124M", "U125M", "U126M", "U127M", "U128M", 
"U131F", "U132F", "U133F", "U129M", "U134F", "U135F", "U130M", 
"U131M", "U136F", "U132M", "U137F", "U138F", "U139F", "U133M", 
"U134M", "U140F", "U141F", "U135M", "U142F", "U136M", "U137M", 
"U143F", "U144F", "U145F", "U146F", "U138M", "U139M", "U147F", 
"U148F", "U149F", "U150F", "U151F", "U152F", "U140M", "U153F", 
"U154F", "U141M", "U155F", "U142M", "U156F", "U157F", "U143M", 
"U144M", "U158F", "U159F", "U160F", "U145M", "U146M", "U147M", 
"U148M", "U149M", "U150M", "U161F", "U151M", "U162F", "U163F", 
"U152M", "U153M", "U164F", "U165F", "U154M", "U155M", "U156M", 
"U157M", "U158M", "U159M", "U160M", "U161M", "U162M", "U163M", 
"U166F", "U164M", "U165M", "U166M", "U167F", "U167M", "U168M", 
"U168F", "U169M", "U169F", "U170F", "U170M", "U171M", "U171F", 
"U172M", "U172F", "U173F", "U173M", "U174F", "U175F", "U176F", 
"U177F", "U174M", "U175M", "U178F", "U179F", "U176M", "U02N", 
"U180F", "U177M", "U181F", "U182F", "U178M", "U179M", "U180M", 
"U181M", "U182M", "U183F", "U184F", "U185F", "U183M", "U184M", 
"U185M", "U186F", "U187F", "U188F", "U189F", "U190F", "U191F", 
"U186M", "U192F", "U193F", "U194F", "U195F", "U187M", "U196F", 
"U197F", "U198F", "U199F", "U188M", "U200F", "U189M", "U201F", 
"U202F", "U203F", "U204F", "U205F", "U190M", "U206F", "U191M", 
"U192M", "U193M", "U194M", "U207F", "U208F", "U209F", "U195M", 
"U196M", "U210F", "U197M", "U211F", "U198M", "U199M", "U212F", 
"U200M", "U213F")), class = "data.frame", row.names = c(NA, -437L
))
  

Спасибо!

Комментарии:

1. Вам нужно nodes %>% mutate(rn = rowid(USER.ID)) %>% pivot_wider(names_from = Level, values_from = Gender)

Ответ №1:

Мы можем использовать pivot_wider

 library(dplyr)
library(data.table)
nodes %>% 
    mutate(rn = rowid(USER.ID)) %>%
    pivot_wider(names_from = Level, values_from = Gender)
  

spread Требуются «ключ» и «значение». В коде OP ‘key’ предоставляется только