ProHoster > Блог > Gudanarwa > R kunshin tidyr da sabbin ayyukan sa pivot_longer da pivot_wider
R kunshin tidyr da sabbin ayyukan sa pivot_longer da pivot_wider
Kunshin gyara an haɗa shi cikin ainihin ɗayan manyan ɗakunan karatu a cikin harshen R - tsararru.
Babban manufar kunshin shine don kawo bayanai cikin ingantaccen tsari.
Dama akwai akan Habré bugawa sadaukar da wannan kunshin, amma ya koma 2015. Kuma ina so in gaya muku game da mafi yawan sauye-sauye na yau da kullun, wanda marubucin ta, Hedley Wickham ya sanar kwanakin baya.
S.J.K.: Za a taru () da yada () za a yanke su?
Hadley Wickham ne adam wata: Har zuwa wani matsayi. Ba za mu ƙara ba da shawarar yin amfani da waɗannan ayyuka da gyara kwari a cikinsu ba, amma za su ci gaba da kasancewa a cikin kunshin a halin yanzu.
Abubuwa
Idan kuna sha'awar nazarin bayanai, kuna iya sha'awar nawa telegram и youtube tashoshi. Yawancin abun ciki an sadaukar da shi ga yaren R.
Manufar gyara - taimaka muku kawo bayanan zuwa abin da ake kira tsari mai kyau. Neat data shine data inda:
Kowane m yana cikin ginshiƙi.
Kowane abin kallo shine kirtani.
Kowace ƙima tantanin halitta ce.
Yana da sauƙin sauƙi kuma mafi dacewa don aiki tare da bayanan da aka gabatar a cikin cikakkun bayanai lokacin gudanar da bincike.
Babban ayyuka da aka haɗa a cikin fakitin tidyr
tidyr ya ƙunshi saitin ayyuka da aka tsara don canza tebur:
fill() - cika ƙimar da aka ɓace a cikin ginshiƙi tare da ƙimar baya;
separate() - raba filin daya zuwa da yawa ta amfani da mai raba;
unite() - yana aiwatar da aikin haɗa filayen da yawa zuwa ɗaya, aikin juzu'i na aikin separate();
pivot_longer() - aikin da ke canza bayanai daga tsari mai fadi zuwa tsari mai tsawo;
pivot_wider() - aikin da ke juyar da bayanai daga dogon tsari zuwa tsari mai fadi. Aiki na baya na wanda aikin yayi pivot_longer().
gather()m - aikin da ke canza bayanai daga tsari mai fadi zuwa tsari mai tsawo;
spread()m - aikin da ke juyar da bayanai daga dogon tsari zuwa tsari mai fadi. Aiki na baya na wanda aikin yayi gather().
Sabuwar ra'ayi don canza bayanai daga fa'ida zuwa tsayi mai tsayi da akasin haka
A baya can, ana amfani da ayyuka don irin wannan canji gather() и spread(). Tsawon shekarun wanzuwar waɗannan ayyuka, ya zama a fili cewa ga mafi yawan masu amfani, gami da mawallafin kunshin, sunayen waɗannan ayyuka da hujjojinsu ba a bayyane suke ba, kuma sun haifar da matsala wajen gano su da fahimtar wanene daga cikin waɗannan ayyukan ya canza. firam ɗin kwanan wata daga fa'ida zuwa tsari mai tsayi, kuma akasin haka.
Dangane da wannan, in gyara Sabbin ayyuka biyu masu mahimmanci an ƙara waɗanda aka ƙera don canza firam ɗin kwanan wata.
Sabbin kayan aiki pivot_longer() и pivot_wider() an yi wahayi zuwa ga wasu fasalulluka a cikin kunshin cdata, John Mount da Nina Zumel suka kirkiro.
Shigar da mafi yawan halin yanzu na tidyr 0.8.3.9000
Don shigar da sabon, mafi yawan nau'in kunshin gyara0.8.3.9000, inda sabbin abubuwa ke samuwa, yi amfani da lambar mai zuwa.
devtools::install_github("tidyverse/tidyr")
A lokacin rubutawa, waɗannan ayyukan suna samuwa ne kawai a cikin sigar dev na fakitin akan GitHub.
Juyawa zuwa sababbin fasali
A gaskiya ma, ba shi da wahala don canja wurin tsofaffin rubutun don yin aiki tare da sababbin ayyuka; don ƙarin fahimta, zan ɗauki misali daga takardun tsofaffin ayyuka kuma in nuna yadda ake gudanar da ayyuka iri ɗaya ta amfani da sababbin. pivot_*() ayyuka.
Maida fadi da tsari zuwa dogon tsari.
Lambar misali daga takardun aikin tattarawa
# example
library(dplyr)
stocks <- data.frame(
time = as.Date('2009-01-01') + 0:9,
X = rnorm(10, 0, 1),
Y = rnorm(10, 0, 2),
Z = rnorm(10, 0, 4)
)
# old
stocks_gather <- stocks %>% gather(key = stock,
value = price,
-time)
# new
stocks_long <- stocks %>% pivot_longer(cols = -time,
names_to = "stock",
values_to = "price")
Maida dogon tsari zuwa faffadan tsari.
Lambar misali daga takardun aikin yadawa
# old
stocks_spread <- stocks_gather %>% spread(key = stock,
value = price)
# new
stock_wide <- stocks_long %>% pivot_wider(names_from = "stock",
values_from = "price")
Domin a cikin misalan da ke sama na yin aiki tare da pivot_longer() и pivot_wider(), a cikin tebur na asali hannun jari babu ginshiƙai da aka jera a cikin muhawara sunayen_zuwa и dabi'u_zuwa Dole ne sunayensu su kasance cikin alamomin ambato.
Tebur wanda zai taimaka muku mafi sauƙin gano yadda ake canzawa zuwa aiki tare da sabon ra'ayi gyara.
Bayani daga marubucin
Duk rubutun da ke ƙasa yana daidaitawa, zan ma faɗi fassarar kyauta vignettes daga gidan yanar gizon tidyverse library na hukuma.
Misali mai sauƙi na juyar da bayanai daga fa'ida zuwa dogon tsari
pivot_longer () - yana sanya bayanai ya fi tsayi ta hanyar rage adadin ginshiƙai da ƙara yawan layuka.
Don gudanar da misalan da aka gabatar a cikin labarin, da farko kuna buƙatar haɗa fakitin da suka dace:
library(tidyr)
library(dplyr)
library(readr)
Bari mu ce muna da tebur tare da sakamakon binciken da (cikin wasu abubuwa) ya tambayi mutane game da addininsu da kudaden shiga na shekara:
Wannan tebur ya ƙunshi bayanan addinin masu amsa a cikin layuka, kuma matakan samun kuɗin shiga suna warwatse a cikin sunaye. Ana adana adadin masu amsawa daga kowane nau'i a cikin ƙimar tantanin halitta a tsakar addini da matakin samun kudin shiga. Don kawo teburin cikin tsari mai kyau, daidaitaccen tsari, ya isa a yi amfani da shi pivot_longer():
Hujja ta farko abin wuya, ya bayyana waɗanne ginshiƙai ne ake buƙatar haɗa su. A wannan yanayin, duk ginshiƙai banda lokaci.
shaida sunayen_zuwa yana ba da sunan canjin da za a ƙirƙira daga sunayen ginshiƙan da muka tattara.
dabi'u_zuwa yana ba da sunan madaidaicin da za a ƙirƙira daga bayanan da aka adana a cikin ƙimar sel na ginshiƙan da aka haɗa.
Спецификации
Wannan sabon aiki ne na kunshin gyara, wanda a baya baya samuwa yayin aiki tare da ayyukan gado.
Ƙayyadaddun ƙayyadaddun bayanai shine firam ɗin bayanai, kowane jeri wanda ya yi daidai da shafi ɗaya a cikin sabon firam ɗin kwanan wata, da ginshiƙai na musamman guda biyu waɗanda suka fara da:
Sauran ginshiƙan ƙayyadaddun bayanai suna nuna yadda sabon shafi zai nuna sunan ginshiƙan da aka matsa daga .name.
Bayanin ƙayyadaddun yana bayyana metadata da aka adana a cikin sunan shafi, tare da jere ɗaya don kowane shafi da shafi ɗaya ga kowane mai canzawa, haɗe da sunan shafi, wannan ma'anar na iya zama kamar ruɗani a wannan lokacin, amma bayan duba ƴan misalai zai zama da yawa. mafi bayyane.
Maƙasudin ƙayyadaddun bayanai shine cewa zaku iya dawo da, gyara, da ayyana sabon metadata don jujjuya tsarin bayanan.
Don aiki tare da ƙayyadaddun bayanai lokacin canza tebur daga tsari mai faɗi zuwa tsari mai tsayi, yi amfani da aikin pivot_longer_spec().
Yadda wannan aikin ke aiki shine yana ɗaukar kowane firam ɗin kwanan wata kuma yana samar da metadata ta hanyar da aka bayyana a sama.
A matsayin misali, bari mu ɗauki bayanan wanene da aka samar tare da kunshin gyara. Wannan bayanan yana kunshe da bayanan da kungiyar lafiya ta duniya ta bayar game da kamuwa da cutar tarin fuka.
who
#> # A tibble: 7,240 x 60
#> country iso2 iso3 year new_sp_m014 new_sp_m1524 new_sp_m2534
#> <chr> <chr> <chr> <int> <int> <int> <int>
#> 1 Afghan… AF AFG 1980 NA NA NA
#> 2 Afghan… AF AFG 1981 NA NA NA
#> 3 Afghan… AF AFG 1982 NA NA NA
#> 4 Afghan… AF AFG 1983 NA NA NA
#> 5 Afghan… AF AFG 1984 NA NA NA
#> 6 Afghan… AF AFG 1985 NA NA NA
#> 7 Afghan… AF AFG 1986 NA NA NA
#> 8 Afghan… AF AFG 1987 NA NA NA
#> 9 Afghan… AF AFG 1988 NA NA NA
#> 10 Afghan… AF AFG 1989 NA NA NA
#> # … with 7,230 more rows, and 53 more variables
Bari mu gina ƙayyadaddun sa.
spec <- who %>%
pivot_longer_spec(new_sp_m014:newrel_f65, values_to = "count")
filayen kasar, isoxnumx, isoxnumx sun riga sun kasance masu canji. Ayyukanmu shine jujjuya ginshiƙan da sabon_sp_m014 a kan sabon_f65.
Sunayen waɗannan ginshiƙan suna adana bayanan masu zuwa:
Prefix new_ yana nuna cewa ginshiƙi yana ƙunshe da bayanai game da sababbin cututtukan tarin fuka, tsarin kwanan wata na yanzu ya ƙunshi bayanai kawai akan sababbin cututtuka, don haka wannan prefix a cikin mahallin yanzu ba ya da wata ma'ana.
#> # A tibble: 56 x 5
#> .name .value diagnosis gender age
#> <chr> <chr> <chr> <chr> <chr>
#> 1 new_sp_m014 count sp m 014
#> 2 new_sp_m1524 count sp m 1524
#> 3 new_sp_m2534 count sp m 2534
#> 4 new_sp_m3544 count sp m 3544
#> 5 new_sp_m4554 count sp m 4554
#> 6 new_sp_m5564 count sp m 5564
#> 7 new_sp_m65 count sp m 65
#> 8 new_sp_f014 count sp f 014
#> 9 new_sp_f1524 count sp f 1524
#> 10 new_sp_f2534 count sp f 2534
#> # … with 46 more rows
Da fatan za a kula da ginshiƙi .name yakamata ya kasance baya canzawa tunda wannan shine fihirisar mu a cikin sunayen ginshiƙi na ainihin bayanan.
Jinsi da shekaru (ginshiƙai jinsi и shekaru) suna da ƙayyadaddun dabi'u da aka sani, don haka ana ba da shawarar canza waɗannan ginshiƙai zuwa dalilai:
A ƙarshe, don amfani da ƙayyadaddun ƙayyadaddun da muka ƙirƙira zuwa firam ɗin kwanan wata na asali wanda muna bukatar mu yi amfani da hujja tabarau cikin aiki pivot_longer().
who %>% pivot_longer(spec = spec)
#> # A tibble: 405,440 x 8
#> country iso2 iso3 year diagnosis gender age count
#> <chr> <chr> <chr> <int> <chr> <fct> <ord> <int>
#> 1 Afghanistan AF AFG 1980 sp m 014 NA
#> 2 Afghanistan AF AFG 1980 sp m 1524 NA
#> 3 Afghanistan AF AFG 1980 sp m 2534 NA
#> 4 Afghanistan AF AFG 1980 sp m 3544 NA
#> 5 Afghanistan AF AFG 1980 sp m 4554 NA
#> 6 Afghanistan AF AFG 1980 sp m 5564 NA
#> 7 Afghanistan AF AFG 1980 sp m 65 NA
#> 8 Afghanistan AF AFG 1980 sp f 014 NA
#> 9 Afghanistan AF AFG 1980 sp f 1524 NA
#> 10 Afghanistan AF AFG 1980 sp f 2534 NA
#> # … with 405,430 more rows
Duk abin da muka yi kawai za a iya kwatanta shi da tsari kamar haka:
Ƙayyadewa ta amfani da ƙima mai yawa (.darajar)
A cikin misalin da ke sama, ginshiƙin ƙayyadaddun bayanai .daraja ya ƙunshi ƙima ɗaya kawai, a mafi yawan lokuta haka lamarin yake.
Amma lokaci-lokaci yanayi na iya tasowa lokacin da kake buƙatar tattara bayanai daga ginshiƙai masu nau'ikan bayanai daban-daban a cikin ƙima. Amfani da aikin gado spread() wannan zai yi wuya a yi.
Misalin da ke ƙasa an ɗauko daga vignettes zuwa kunshin bayanai.
Fim ɗin kwanan wata da aka ƙirƙira ya ƙunshi bayanai kan yaran iyali ɗaya a kowane layi. Iyalai suna iya samun 'ya'ya ɗaya ko biyu. Ga kowane yaro, ana ba da bayanai akan ranar haihuwa da jinsi, kuma bayanan kowane yaro yana cikin ginshiƙai daban-daban; aikinmu shine kawo wannan bayanan zuwa tsarin da ya dace don bincike.
Lura cewa muna da masu canji guda biyu tare da bayani game da kowane yaro: jinsin su da kwanan watan haihuwa (ginshiƙai tare da prefix dop ya ƙunshi ranar haihuwa, ginshiƙai tare da prefix jinsi dauke da jima'i na yaro). Sakamakon da ake tsammanin shine ya kamata su bayyana a cikin ginshiƙai daban-daban. Za mu iya yin haka ta hanyar samar da ƙayyadaddun ƙayyadaddun abin da shafi .value zai sami ma'anoni daban-daban guda biyu.
spec <- family %>%
pivot_longer_spec(-family) %>%
separate(col = name, into = c(".value", "child"))%>%
mutate(child = parse_number(child))
#> # A tibble: 4 x 3
#> .name .value child
#> <chr> <chr> <dbl>
#> 1 dob_child1 dob 1
#> 2 dob_child2 dob 2
#> 3 gender_child1 gender 1
#> 4 gender_child2 gender 2
Don haka, bari mu ɗauki mataki-mataki duba ayyukan da lambar da ke sama ta yi.
pivot_longer_spec(-family) - ƙirƙira ƙayyadaddun ƙayyadaddun bayanai waɗanda ke danne duk ginshiƙan da ke akwai ban da rukunin iyali.
separate(col = name, into = c(".value", "child")) - raba shafi .name, wanda ya ƙunshi sunayen filayen tushe, ta yin amfani da alamar da kuma shigar da sakamakon da aka samu a cikin ginshiƙai. .daraja и yaro.
Muna amfani da hujja na.rm = TRUE, saboda yanayin halin yanzu na bayanan yana tilasta ƙirƙirar ƙarin layuka don abubuwan da ba su wanzu ba. Domin iyali 2 suna da ɗa guda ɗaya, na.rm = TRUE yana ba da tabbacin cewa iyali 2 za su sami layi ɗaya a cikin fitarwa.
Canza firam ɗin kwanan wata daga dogon lokaci zuwa tsari mai faɗi
pivot_wider() - shine canji na juzu'i, kuma akasin haka yana ƙara adadin ginshiƙan firam ɗin kwanan wata ta hanyar rage adadin layuka.
Irin wannan sauyi ba a cika yin amfani da shi ba don kawo bayanai cikin ingantaccen tsari, duk da haka, wannan dabarar za ta iya zama da amfani don ƙirƙirar allunan pivot da ake amfani da su wajen gabatarwa, ko don haɗawa da wasu kayan aikin.
A gaskiya ayyuka pivot_longer() и pivot_wider() suna daidaitawa, kuma suna haifar da ayyuka da suka saba wa juna, watau: df %>% pivot_longer(spec = spec) %>% pivot_wider(spec = spec) и df %>% pivot_wider(spec = spec) %>% pivot_longer(spec = spec) zai dawo da asalin df.
Misali mafi sauƙi na juya tebur zuwa tsari mai faɗi
Don nuna yadda aikin ke aiki pivot_wider() za mu yi amfani da dataset kifi_ haduwa, wanda ke adana bayanai game da yadda tashoshi daban-daban ke yin rikodin motsin kifin a bakin kogin.
#> # A tibble: 114 x 3
#> fish station seen
#> <fct> <fct> <int>
#> 1 4842 Release 1
#> 2 4842 I80_1 1
#> 3 4842 Lisbon 1
#> 4 4842 Rstr 1
#> 5 4842 Base_TD 1
#> 6 4842 BCE 1
#> 7 4842 BCW 1
#> 8 4842 BCE2 1
#> 9 4842 BCW2 1
#> 10 4842 MAE 1
#> # … with 104 more rows
A mafi yawan lokuta, wannan tebur zai zama ƙarin bayani da sauƙi don amfani idan kun gabatar da bayanai ga kowane tasha a cikin ginshiƙi daban.
fish_encounters %>% pivot_wider(names_from = station, values_from = seen)
#> # A tibble: 19 x 12
#> fish Release I80_1 Lisbon Rstr Base_TD BCE BCW BCE2 BCW2 MAE
#> <fct> <int> <int> <int> <int> <int> <int> <int> <int> <int> <int>
#> 1 4842 1 1 1 1 1 1 1 1 1 1
#> 2 4843 1 1 1 1 1 1 1 1 1 1
#> 3 4844 1 1 1 1 1 1 1 1 1 1
#> 4 4845 1 1 1 1 1 NA NA NA NA NA
#> 5 4847 1 1 1 NA NA NA NA NA NA NA
#> 6 4848 1 1 1 1 NA NA NA NA NA NA
#> 7 4849 1 1 NA NA NA NA NA NA NA NA
#> 8 4850 1 1 NA 1 1 1 1 NA NA NA
#> 9 4851 1 1 NA NA NA NA NA NA NA NA
#> 10 4854 1 1 NA NA NA NA NA NA NA NA
#> # … with 9 more rows, and 1 more variable: MAW <int>
Wannan saitin bayanan yana rubuta bayanai ne kawai lokacin da tashar ta gano kifi, watau. idan wani kifin ba a rubuta ta wani tashar ba, to wannan bayanan ba zai kasance a cikin tebur ba. Wannan yana nufin za a cika fitarwa da NA.
Duk da haka, a wannan yanayin mun san cewa rashin rikodin yana nufin ba a ga kifi ba, don haka za mu iya amfani da hujja dabi'u_cika cikin aiki pivot_wider() kuma cika waɗannan darajojin da suka ɓace da sifili:
Samar da sunan shafi daga masu canjin tushe da yawa
Ka yi tunanin muna da tebur wanda ya ƙunshi haɗin samfur, ƙasa da shekara. Don samar da firam ɗin kwanan wata gwaji, kuna iya gudanar da lambar mai zuwa:
df <- expand_grid(
product = c("A", "B"),
country = c("AI", "EI"),
year = 2000:2014
) %>%
filter((product == "A" & country == "AI") | product == "B") %>%
mutate(value = rnorm(nrow(.)))
#> # A tibble: 45 x 4
#> product country year value
#> <chr> <chr> <int> <dbl>
#> 1 A AI 2000 -2.05
#> 2 A AI 2001 -0.676
#> 3 A AI 2002 1.60
#> 4 A AI 2003 -0.353
#> 5 A AI 2004 -0.00530
#> 6 A AI 2005 0.442
#> 7 A AI 2006 -0.610
#> 8 A AI 2007 -2.77
#> 9 A AI 2008 0.899
#> 10 A AI 2009 -0.106
#> # … with 35 more rows
Ayyukanmu shine fadada tsarin bayanai ta yadda shafi ɗaya ya ƙunshi bayanai don kowane haɗin samfur da ƙasa. Don yin wannan, kawai shiga cikin gardama sunayen_daga vector mai kunshe da sunayen filayen da za a hade.
Hakanan zaka iya amfani da ƙayyadaddun bayanai zuwa aiki pivot_wider(). Amma idan aka sallama zuwa ga pivot_wider() ƙayyadaddun ya yi akasin juyawa pivot_longer(): ginshiƙan da aka ƙayyade a cikin .name, ta amfani da dabi'u daga .daraja da sauran ginshiƙai.
Don wannan saitin bayanai, zaku iya samar da ƙayyadaddun ƙayyadaddun al'ada idan kuna son kowace ƙasa mai yuwuwa da haɗin samfur su sami nasu ginshiƙi, ba kawai waɗanda ke cikin bayanan ba:
#> # A tibble: 4 x 4
#> .name product country .value
#> <chr> <chr> <chr> <chr>
#> 1 A_AI A AI value
#> 2 A_EI A EI value
#> 3 B_AI B AI value
#> 4 B_EI B EI value
df %>% pivot_wider(spec = spec) %>% head()
#> # A tibble: 6 x 5
#> year A_AI A_EI B_AI B_EI
#> <int> <dbl> <dbl> <dbl> <dbl>
#> 1 2000 -2.05 NA 0.607 1.20
#> 2 2001 -0.676 NA 1.65 -0.114
#> 3 2002 1.60 NA -0.0245 0.501
#> 4 2003 -0.353 NA 1.30 -0.459
#> 5 2004 -0.00530 NA 0.921 -0.0589
#> 6 2005 0.442 NA -1.55 0.594
Misalai na ci gaba da yawa na aiki tare da sabon ra'ayi na tidyr
Tsaftace bayanai ta amfani da Ƙididdigar Ƙididdiga ta Amurka da saitin hayar a matsayin misali.
Saitin bayanai kudin shiga_hayar mu ya ƙunshi matsakaicin kudin shiga da bayanin haya ga kowace jiha a cikin Amurka don 2017 (saitin bayanan da ke cikin fakiti ƙididdiga).
us_rent_income
#> # A tibble: 104 x 5
#> GEOID NAME variable estimate moe
#> <chr> <chr> <chr> <dbl> <dbl>
#> 1 01 Alabama income 24476 136
#> 2 01 Alabama rent 747 3
#> 3 02 Alaska income 32940 508
#> 4 02 Alaska rent 1200 13
#> 5 04 Arizona income 27517 148
#> 6 04 Arizona rent 972 4
#> 7 05 Arkansas income 23789 165
#> 8 05 Arkansas rent 709 5
#> 9 06 California income 29454 109
#> 10 06 California rent 1358 3
#> # … with 94 more rows
A cikin hanyar da aka adana bayanan a cikin ma'aunin bayanai kudin shiga_hayar mu Yin aiki tare da su ba shi da daɗi sosai, don haka muna son ƙirƙirar saitin bayanai tare da ginshiƙai: haya, haya_moe, zo, kudin shiga_moe. Akwai hanyoyi da yawa don ƙirƙirar wannan ƙayyadaddun ƙayyadaddun bayanai, amma babban batu shine cewa muna buƙatar samar da kowane haɗuwa da ƙima masu canzawa kimanta/moesannan samar da sunan shafi.
Manufarmu ita ce ƙirƙirar ƙayyadaddun saitin bayanai tare da kowane ma'auni a cikin nasa ginshiƙi. Ba a san ainihin matakan da ake buƙata ba, amma za mu fara da matsala mafi mahimmanci: shekara ta bazu cikin ginshiƙai da yawa.
Don gyara wannan kuna buƙatar amfani da aikin pivot_longer().
Mataki na gaba shine duba madaidaicin mai nuna alama. pop2 %>% count(indicator)
#> # A tibble: 4 x 2
#> indicator n
#> <chr> <int>
#> 1 SP.POP.GROW 4752
#> 2 SP.POP.TOTL 4752
#> 3 SP.URB.GROW 4752
#> 4 SP.URB.TOTL 4752
Inda SP.POP.GROW shine haɓakar yawan jama'a, SP.POP.TOTL shine jimlar yawan jama'a, da SP.URB. * abu daya ne, amma ga garuruwa kawai. Bari mu raba waɗannan dabi'u zuwa mabambanta biyu: yanki - yanki (dumi ko birni) da ma'auni mai ɗauke da ainihin bayanai (yawan jama'a ko girma):
Rubuta wannan jeri yana da wuyar gaske saboda babu wani canji da zai iya gano ko wane bayanan na wane lamba ne. Za mu iya gyara wannan ta hanyar lura cewa kowane sabon bayanan tuntuɓar yana farawa da "suna", don haka za mu iya ƙirƙirar mai ganowa na musamman kuma mu ƙara shi da ɗaya a duk lokacin da ginshiƙin filin ya ƙunshi darajar "suna":
#> # A tibble: 6 x 3
#> field value person_id
#> <chr> <chr> <int>
#> 1 name Jiena McLellan 1
#> 2 company Toyota 1
#> 3 name John Smith 2
#> 4 company google 2
#> 5 email [email protected] 2
#> 6 name Huxley Ratcliffe 3
Yanzu da muna da ID na musamman ga kowane lamba, za mu iya juya filin da ƙima zuwa ginshiƙai:
#> # A tibble: 3 x 4
#> person_id name company email
#> <int> <chr> <chr> <chr>
#> 1 1 Jiena McLellan Toyota <NA>
#> 2 2 John Smith google [email protected]
#> 3 3 Huxley Ratcliffe <NA> <NA>
ƙarshe
Ra'ayina na sirri shine sabon ra'ayi gyara da gaske mafi ƙwarewa, kuma mafi mahimmanci a cikin ayyuka zuwa ayyukan gado spread() и gather(). Ina fatan wannan labarin ya taimaka muku magance pivot_longer() и pivot_wider().