tidyr::separate_rows()
Function of the Week: separate_rows
Farzana Naoshin
2021-02-17
separate_rows
In this document, I will introduce the “separate_rows” function and show what it’s for.
library(tidyverse)
library(dplyr)
library(readxl)
library(here)
# tidyr hosts separate_rows
library(tidyr)
What is it for?
This function separates multiple values recorded for an observation for one variable. For example, three bill length is recorded for one observation below, ‘separate_rows’ function will separate them into three rows.
funcDATA = read_excel(here('data/function.xlsx'),
sheet=1,
na="NA")
slice(funcDATA)
separate_rows(data = funcDATA, bill_length_mm, convert = TRUE)
We can also do it for multiple variables having more than one data point for one variable.
separate_rows(data = funcDATA,
bill_length_mm, bill_depth_mm,
convert = TRUE)
Is it helpful?
I think it is a great tool to separate multiple values from a variable into separate rows when working on a dataset with this problem.
LS0tCnRpdGxlOiAnRnVuY3Rpb24gb2YgdGhlIFdlZWs6IHNlcGFyYXRlX3Jvd3MnCmF1dGhvcjogIkZhcnphbmEgTmFvc2hpbiIKZGF0ZTogImByIFN5cy5EYXRlKClgIgpvdXRwdXQ6CiAgaHRtbF9kb2N1bWVudDoKICAgIGRmX3ByaW50OiBwYWdlZAogICAgY29kZV9kb3dubG9hZDogdHJ1ZQogICAgdG9jOiB5ZXMKICAgIHRvY19mbG9hdDogZmFsc2UKICAgIGNvZGVfZm9sZGluZzogc2hvdwogICAgdGhlbWU6IGNlcnVsZWFuCi0tLQoKYGBge3Igc2V0dXAsIGluY2x1ZGU9RkFMU0V9CmtuaXRyOjpvcHRzX2NodW5rJHNldChlY2hvID0gVFJVRSkKYGBgCgoKKioqICAKCiMjIyMgYHNlcGFyYXRlX3Jvd3NgCgoqKiogCgojIyMjICoqSW4gdGhpcyBkb2N1bWVudCwgSSB3aWxsIGludHJvZHVjZSB0aGUgInNlcGFyYXRlX3Jvd3MiIGZ1bmN0aW9uIGFuZCBzaG93IHdoYXQgaXQncyBmb3IuKioKCioqKiAgCgpgYGB7ciBsb2FkbGliLCBlY2hvPVQsIHJlc3VsdHM9J2hpZGUnLCBtZXNzYWdlPUYsIHdhcm5pbmc9Rn0KbGlicmFyeSh0aWR5dmVyc2UpCmxpYnJhcnkoZHBseXIpCmxpYnJhcnkocmVhZHhsKQpsaWJyYXJ5KGhlcmUpCiMgdGlkeXIgaG9zdHMgc2VwYXJhdGVfcm93cyAKbGlicmFyeSh0aWR5cikKYGBgCgoqKiogIAoKIyMjIyAqKldoYXQgaXMgaXQgZm9yPyoqCgoqKiogIAoKPHN0eWxlPgpkaXYuYmx1ZSB7YmFja2dyb3VuZC1jb2xvcjojZTZmMGZmOyBib3JkZXItcmFkaXVzOiA0cHg7IHBhZGRpbmc6IDEwcHg7fQo8L3N0eWxlPgo8ZGl2IGNsYXNzID0gImJsdWUiPgojIyMjIFRoaXMgZnVuY3Rpb24gc2VwYXJhdGVzIG11bHRpcGxlIHZhbHVlcyByZWNvcmRlZCBmb3IgYW4gb2JzZXJ2YXRpb24gZm9yIG9uZSB2YXJpYWJsZS4gRm9yIGV4YW1wbGUsIHRocmVlIGJpbGwgbGVuZ3RoIGlzIHJlY29yZGVkIGZvciBvbmUgb2JzZXJ2YXRpb24gYmVsb3csICdzZXBhcmF0ZV9yb3dzJyBmdW5jdGlvbiB3aWxsIHNlcGFyYXRlIHRoZW0gaW50byB0aHJlZSByb3dzLiAKPC9kaXY+ICAKCioqKiAgIAoKCmBgYHtyfQpmdW5jREFUQSA9IHJlYWRfZXhjZWwoaGVyZSgnZGF0YS9mdW5jdGlvbi54bHN4JyksIAogICAgICAgICAgICAgICAgICAgICAgc2hlZXQ9MSwgCiAgICAgICAgICAgICAgICAgICAgICBuYT0iTkEiKQpzbGljZShmdW5jREFUQSkKYGBgCgoqKiogIAoKYGBge3J9CnNlcGFyYXRlX3Jvd3MoZGF0YSA9IGZ1bmNEQVRBLCBiaWxsX2xlbmd0aF9tbSwgY29udmVydCA9IFRSVUUpCmBgYAoKCioqKiAgCgo8c3R5bGU+CmRpdi5ibHVlIHtiYWNrZ3JvdW5kLWNvbG9yOiNlNmYwZmY7IGJvcmRlci1yYWRpdXM6IDRweDsgcGFkZGluZzogMTBweDt9Cjwvc3R5bGU+CjxkaXYgY2xhc3MgPSAiYmx1ZSI+CiMjIyMgV2UgY2FuIGFsc28gZG8gaXQgZm9yIG11bHRpcGxlIHZhcmlhYmxlcyBoYXZpbmcgbW9yZSB0aGFuIG9uZSBkYXRhIHBvaW50IGZvciBvbmUgdmFyaWFibGUuIAo8L2Rpdj4gIAoKKioqICAgIAoKCmBgYHtyfQpzZXBhcmF0ZV9yb3dzKGRhdGEgPSBmdW5jREFUQSwgCiAgICAgICAgICAgICAgYmlsbF9sZW5ndGhfbW0sIGJpbGxfZGVwdGhfbW0sIAogICAgICAgICAgICAgIGNvbnZlcnQgPSBUUlVFKQpgYGAKCgoKKioqICAKCiMjIyMgKipJcyBpdCBoZWxwZnVsPyoqCgoqKiogICAgCgo8c3R5bGU+CmRpdi5ibHVlIHtiYWNrZ3JvdW5kLWNvbG9yOiNlNmYwZmY7IGJvcmRlci1yYWRpdXM6IDRweDsgcGFkZGluZzogMTBweDt9Cjwvc3R5bGU+CjxkaXYgY2xhc3MgPSAiYmx1ZSI+CiMjIyMgSSB0aGluayBpdCBpcyBhIGdyZWF0IHRvb2wgdG8gc2VwYXJhdGUgbXVsdGlwbGUgdmFsdWVzIGZyb20gYSB2YXJpYWJsZSBpbnRvIHNlcGFyYXRlIHJvd3Mgd2hlbiB3b3JraW5nIG9uIGEgZGF0YXNldCB3aXRoIHRoaXMgcHJvYmxlbS4gCjwvZGl2PiAgCgoqKiogIAoK