Tidyverse in R - tips & tricks
HTML-код
- Опубликовано: 15 июл 2024
- 🔔 Subscribe for weekly R videos: / @tomhenry-datasciencew...
Here are 18 ways to speed up data cleaning, tidying, and exploration with the tidyverse packages in R. They'll help you to work with data more efficiently, simplify your R code, and surprise your friends!!
🎉 Enjoyed this video? Leave a comment below to share what you liked the most!
0:00 Intro
1:04 Create new columns in a count or group_by
2:11 Sample and randomly shuffle data with slice_sample()
3:05 Create a date column specifying year, month, and day
3:25 Parse numbers with parse_number()
4:07 Select columns with starts_with, ends_with, etc.
4:56 case_when to create or change a column when conditions are met
6:36 str_replace_all to find and replace multiple options at once
7:15 Transmute to create or change columns and keep only those columns
7:48 Use pipes everywhere including inside mutates
9:11 Filter groups without making a new column
10:04 Split a string into columns based on a regular expression
11:10 semi_join to pick only rows from the first table which are matched in the second table
12:20 anti_join to pick only rows from the first table which are NOT matched in the second table
12:48 fct_reorder to sort bar charts
14:06 coord_flip to display counts more beautifully
14:32 fct_lump to lump some factor levels into "Other"
15:26 Generate all combinations using crossing
16:00 Create functions that take column names with double curly braces
18:00 The end
Code:
gist.github.com/larsentom/727...
#rstats #rstudio #datascience #tidyverse - Наука
▶️ Top 7 R packages that are less well known - ruclips.net/video/V-EssPrGPHg/видео.html
🎉 *Subscribe* if you want more videos like this! - ruclips.net/channel/UCb5aI-GwJm3ZxlwtCsLu78Q
😃 *Comment* below to share which tricks you liked the most!!
Thanks, I work in a bank we migrated from SAS to R. This is so helpful.
Please keep on doing these kind of videos!
Super informative and advanced! Thank you. It's hard to find these days advanced tutorials on youtube
This is great, so useful. Thanks!
Fantastic tydiverse data processing tips. Thank you!
Great tips! Always nice to see better ways of doing things.
Glad you enjoyed it!
Great video! Very dense with information and straight to the point!
Great tips, Tom! I'm definitely saving this video!
Awesome! Thank you!
Great tips. I appreciate that you have an index of time stamps for the content. I will be more easily able to reference this video later.
Thank you. Learned so much!
Glad it was helpful!
Fantastic, Tom! Just subscribed, so helpful
Glad you found it helpful!
Great tips! Always looking for new ways of coding for datasets. Subscribed!
More to come!
This is awesome. Thank you!
Tom, you are a boss.
Great tutorial Sir.!!!!!!!
Very helpful video... Thanks
Most welcome :)
Very Nice video TOM. Future video idea - Moving from Sql to R common issues and functions comparisons
Good stuff
Power Pack !
wow! mate love this one. keep it up
for tip #18 how would you exclude some columns from this? i actually need to do a similar function to this
Just pick other columns
2:06 what purpose does ungroup() serve in this case?
Technically it's not necessary! But I have gotten into the habit of 'ungroup()'ing every time after a group_by() because in other contexts - e.g. when the pipe continues with further mutates, summarizes, etc. - forgetting to ungroup() can result in the wrong outcomes. That's because summarize() by default only peels off the last variable in the group_by(). So I have developed the habit of always ungroup()ing after a group_by(), even when it's not necessary!
@@tomhenry-datasciencewithr6047 Thanks. Great explanations. Subscribed. :-)
Great video. Question; in tip nr. 9, what does "\\.?$" do in the first str_replace_all?
Good question! It's a regular expression, and its purpose is to remove an optional '.' at the end of the string of text.
For example, ' INC.' or ' CO.' or ' INC' or ' CO' would all be matched and replaced with the empty string (i.e. removed from the text). So 'QUANTAS CO.' (hypothetical) and 'QUANTAS CO' would both become 'QUANTAS'
We can break down the "\\.?$" like this:
\\. translates into \. - this says to match an actual '.' character. If we didn't have the '\\', it would match _any_ character because '.' is the regular expression code for any character.
? means 'optional' - so the actual '.' may or may not be present - if it is present, it will be matched.
$ means the 'end of the string of text'.
So putting it together, this means:
'Replace
' ' # a space
followed by 'INC' or 'CO' # (INC|CO)
followed by an optional '.' # \\.?
if all at the end of the string # $
with
the empty string # ""
'
More info on regular expressions here:
r4ds.had.co.nz/strings.html#matching-patterns-with-regular-expressions
light RStudio theme not acceptable
Haha! What's your favorite RStudio theme?
@@tomhenry-datasciencewithr6047 cobalt
Nice -- Cobalt is probably my favorite RStudio theme too!
Team Light Theme!
Hi Tom, do you have the script available for download anywhere? Would love to revisit a few of the tips here. Really like your work. Thanks for sharing!
-- Juan
Sure! I've put a link at the end of the description. Here it is: gist.github.com/larsentom/727da01476ad1fe5c066a53cc784417b
@@tomhenry-datasciencewithr6047 ahh! can't believe I missed it. Thank you Tom.
@@clono1984 Glad you liked the tips! Let me know if you have others to share too!
Thanks. Great tips! The github link is no longer working. Is there a new link?
I am having trouble accessing the script. Can someone help me?
My data(csv) is about historial heights between both genders of different ages .
Here , my data contains heights of every years (1986-2019) & Age group > 2 , 8 , 16 , 19 , 22 . Also Male , Female sex . But I just want to select / work with only age 19 (gender male/both) to see their heights between 1986-2019 . How can I do it ? plz let me know .
You can work with something like this:
heights %>%
filter(year %>% between(1986, 2019)) %>% # year >= 1986, year = 1986 & year % # change to just 'age_group == 19' or 'age_group %in% c(19)' if you want
ggplot(aes(year, height, color = sex)) +
geom_line() +
facet_wrap(~age_group, ncol = 1)
this assumes your data looks like this:
year | age_group | sex | height
2015 | 16 | Female | 150
etc
Then try removing / changing parts of this to see the effects!
link for the code cannot be accesed: 404
you sound like daniel ricciardo
I just started watching some few videos for school purposes, they are great, but u are so fast😅, it will be a great thing if u could speak a little slowly and even repeat some few things, thanks
FLIGHTS DOESNT WORK WITH NEW r