Skip to content
R for the Rest of Us Logo

R for the Rest of Us Podcast Episode 10: Kyle Walker

In this episode, I speak with Kyle Walker, Associate Professor of Geography and Director of the Center for Urban Studies at Texas Christian University. Kyle has developed several packages, but the one we talk about in this chat is called tidycensus. tidycensus allows R users to return Census and ACS data as tidyverse-ready data frames. Kyle had a rough start with R programming and he didn’t want anything to do with it for 3 years. What made him come back to R and become one of its renowned champions? We chat about that as well.

Learn more about Kyle and his work at WALKER DATA. He’s also on Twitter (@kyle_e_walker)

Learn More

If you want to receive emails when we publish new podcast episodes, sign up for the R for the Rest of Us newsletter. And if you're ready to learn R, check out our courses.

Audio Version

Video Version

In the video version, Kyle Walker explains how {tidycensus} works.

Resources Discussed

Transcript

[00:00:00] David: Hi, I'm David Keyes and I run R for the Rest of Us. You may think of R as a tool for complex statistical analysis, but it's much more than that. From data visualization to efficient reporting, to improving your workflow - R can do it all. On this podcast, I talk with people about how they use R in unique and creative ways.

[00:00:18] Join me and learn how R can help you.

[00:00:20] Well, I'm delighted today to be joined by Kyle Walker. Kyle Walker is associate professor of geography, director of the center for urban studies at Texas Christian university, and also a consultant, um, who helps folks with, uh, geospatial stuff in general, uh, a bunch of different things there.

[00:00:43] Um, so Kyle, thanks for joining me today. I really appreciate it.

[00:00:47] Kyle: Well, thanks for having me, David. I appreciate being on, I'm a big fan of the work that you're doing and, uh, we learn we're we're fellow Oregonians. At least I'm a displaced Oregonian.

[00:00:59] David: Yeah, I'm, uh, I'm the opposite. I'm in some ways, the more typical Oregonian in that I'm, I'm the one who, who moved here, um, 10 years ago. Um, cool. Well, I'm excited to talk to you because you have developed several packages, but the one we're gonna talk about today, uh, is called tidy census. And, um, we'll get into that a bit more, um, in, in a few minutes, but just to give people an overview, tidy census is a package that allows you to interface directly with data and get data directly from the census bureau, um, which has been a huge time saver for me in my work.

[00:01:34] Um, but first, before we get into that, um, I wonder if you could just give me kind of an overview of your background and how you kind of came to the point, or maybe even before we get into tidy census, how you, how you started using R um, and how that fits with kind of your background.

[00:01:49] Kyle: Yeah, that is a great question. And it's kind of a circuitous route, which is one reason that I'm particularly excited to be on this podcast. Titled R for the rest of us, that's very much how I came to R. And so, uh, I'm from Oregon. Originally did my undergrad at the university of Oregon study. Geography really was far more interested in foreign languages than programming languages.

[00:02:18] Um, so I majored in French as well in undergrad, and then went on to do a PhD in geography at Minnesota. And really my goal was, uh, I was more interested in the qualitative side of research doing interviews and picked up a little geographic information systems GIS along the way, but really didn't devolve in grad school, much beyond point and click software, like, uh, desktop GIS software point and click SPSS. And so I was first introduced to our, um, in graduate school. My advisor encouraged me to take a stats class. Outside of our college. So over, uh, in the statistics department, which is very well regarded at Minnesota, and I'll tell you, it was not love at first sight. Um, first day of the class, I remember it pretty distinctly.

[00:03:19] I was taught by a grad student and the teaching style was basically, this was before our studio. The teaching style was the instructor had this long text file of our commands and would spend the entire class period, copy pasting them into the console while we all frantically tried to type down everything that he did.

[00:03:40] And I just, I just didn't get it. I remember the first exercise he asked us to do. He said, okay, uh, use R to generate a five by five matrix of zeros and then use a four loop to replace all the di the values in the diagonal with ones. I had never written a line of code in my life before, and I had no idea what he was talking about.

[00:04:05] And I ended up auditing the class and it turned me off from R frankly for years, I didn't touch it again for three years. So I ended up getting a job in New York city. We moved out there cause my wife got promoted with her company. I found a job in New York city doing GIS for a pension fund. And, uh, I was just doing point and click RGIS work, uh, which was valuable, but it wasn't reproducible.

[00:04:30] And I had a colleague, um, who worked with me and he would look over it at my screen. He would say, you know, how, how do you remember anything that you did? And I didn't have a good answer for that because I wasn't documenting any of my work. The point and click software was sort of pushing me into. I would say bad habits.

[00:04:52] And so I started to fiddle around with coding a little bit. I learned a little sta um, I learned a little Python, uh, to automate some of my GIS work, but where I really got into R was toward the end of my stay at that pension fund. And then really my first year at TCU and I came across, like, I think many people in the field did that famous video that Hans Roslin did with the moving bubbles.

[00:05:23] That show changes in life expectancy and income levels by country over 200 years. And I was enthralled by that video and I wanted to learn how to make those types of visualizations. And so I started looking into it, oh, do I need to learn JavaScript to do this? Do I need to learn D three? And that was, you know, that was an uphill battle.

[00:05:49] I bought some books and, and tried to go the D three route, but really where I ultimately was able to move in there was exploring R I came back to R I had a bad experience with R a few years prior, but our, it evolved to the point that there were some libraries that had come out. And this was around 20.

[00:06:11] This was around 2012. This was around 10 years ago now, um, that either were an interface to the old Google charts, API that did get minder style bubble charts, or some really exciting innovations at that time, pioneered by people like, um, Ramon who was at data camp now, uh, Kenton Russell, whose timely portfolio on Twitter, uh, who were working on this library called our charts.

[00:06:38] Which was basically in our interface to a bunch of D three interactive visualization libraries. And I wanted to use these in my teaching. And so that was the motivation to get back into R it, interestingly wasn't statistics, um, it wasn't heavy duty programming. I didn't learn to write code. I didn't write my really learn to write code until I was almost 30 years old. And it was too. I wanted to make these interactive graphics to use for my students in class and R was the gateway to that. And then eventually you just kind of build on top of that. And I started to enjoy it more because I had something specific that I could create with.

[00:07:21] David: Yeah, that's, it's funny. I mean, there's so many things there, but, uh, I've taught, I can't tell you how many people I've talked to who had a terrible first experience with R and in some ways it's, it's a real Testament Testament to R that people come back to it in spite of those terrible initial experiences, because what you went through is, is unfortunately I think very common, um, So, and, and I think the other thing is, you know, coming, coming at it with a really specific use case in mind is so important as opposed to having some kind of general, you know, oh, I wanna learn to do something fun and are, but it doesn't mean anything until you really have something there.

[00:08:09] Um, so talk about, like, I know when you, um, were working at the pension fund doing kind of point and click, um, stuff, um, and like you said, you know, you, you took the, the path that many people do where you feel like, oh, I should write down what I, you know, the steps that I'm going through. But as I think we all know that doesn't happen very much.

[00:08:30] Kyle: You're on a deadline and you just need to do it.

[00:08:34] David: Everyone knows you should do it. Nobody actually does it. So talk about the difference in your workflow. Between that, and, and what you have now in a, in a code based environment where you're

[00:08:49] Kyle: it's a great question. I think back to that professional experience. And I mean, it really was a transformative point. You look back at those little times that changed your career. And you know, when my colleague, my friend, Derek doves, he looks over at my computer and says like, how do you remember anything that you did?

[00:09:10] And it just light bulb goes off. Why, I guess, I don't know. I just sort of remember it. And then I started writing down in a word document step by step, the steps I was taking. But at the end of the day was still pretty limiting. I mean, I remember talking to my boss, he asked me to do something and I don't remember what the specific task was, but there wasn't a tool in R J I S to do it.

[00:09:34] So it's the kind of thing that frankly would involve.

[00:09:38] David: working with R.

[00:09:39] Kyle: Using some sort of in our map or L apply type workflow where you had to really iterate through something. And I didn't know how to do that. So I told my boss, well, it can't be done, which is really not something you should tell your boss. And I ended up getting away with it, but that, that was the thing I was in, in the old workflow.

[00:09:58] I was very much constrained by what the software could do. And frankly, desktop GIS software is very powerful software. You can do a lot with it. And if you do learn a script with it, you can extend it. But at the end of the day, you're still more limited. You're, you're constrained to a degree by what the software can do

[00:10:21] David: Hmm.

[00:10:21] Kyle: with R what's different about it.

[00:10:23] Certainly there's the reproducibility piece where you can document everything that you have done and show where you went wrong and then fix it. That is massively important. But R is in many ways, sort of the gateway to so many other pieces of software. And that is immensely empowering. I've heard R described as the ultimate user interface, you know, R allows us to interact with these other technologies that if you're learning each of those technologies by themselves can quickly get overwhelming.

[00:11:03] Oh, I need to learn GIS. And I need to learn Laytech to compile documents, or I need to learn JavaScript so I can make web maps or interactive graphics, or I need to learn sequels so I can interact with databases. And this is not to dismiss the value of any of those. Technologies or any of those skills, but the fact that you can have a central portal through which you can actually engage with all of these technologies and then bring them together into a single workflow is immensely empowering.

[00:11:39] I mean, coming from a geographic information systems background, and frankly, one of the core motivations for writing tidy census, which we'll talk about in a little bit is exactly that all of these things, or you'd need four or five different technologies to get it done. You can put it all together in a single technology and accomplish what you need.

[00:11:58] That's the big difference.

[00:12:01] David: Yeah, definitely. Um, I mean, yeah, it's, it's, it's a really good rundown of kind of how R allows you to kind of spread your tentacles and do all these things. I mean, for me, for example, um, I came from Excel and so when I started using R it was very much like, okay, I, I was doing just, you know, simple, descriptive statistics and Excel.

[00:12:24] Um, let me see, let me see how this works in R and it was once I started really getting into R I was like, oh, I could use this to, for example, make maps, which is not even something I had considered, um, doing in Excel. And I don't know, maybe I. Used Excel much recently. Maybe there are ways to do it now, but at least when I was using Excel, it just wasn't even a thing.

[00:12:46] So I think in a lot of ways, the benefit of R is not just, you know, kind of recreating what you've done in other tools, but like opening your mind to think about working in new ways that, that you've never done before, um, which actually sort of gets us into tidy census. Um, so before I dig into the kind of nuts and bolts of tidy census, can you walk through how you got from, okay, I'm gonna learn R so I can make some things to show students in my classes to developing a package that, you know, allows you to access data directly from the census bureau.

[00:13:23] What was, what were the steps involved to get you to that point?

[00:13:27] Kyle: a, that's a good question. I, I find it to be kind of an, an interesting path, because again, I can't emphasize enough. I never thought of myself as package developer or software developer. I didn't learn to code until I was almost 30 years old and I didn't see myself as a programmer. And I think that's something I tell my students a lot, you know, in.

[00:13:52] Cases, you know, students will come into my classes and they'll say, well, I'm not a computer person. I'm not a software person. And I say, well, you have to stop right there for one, if you have a smartphone, you're already a computer person and you're programming by knowing the sequence of buttons or, or apps to tap, to do things.

[00:14:13] So you just have to reorient yourself, but also, you know, you know, thinking about their trajectories. And this is one thing that I think is really great about the R community. You have these vastly different trajectories where you don't have to be sort of the genius 11 year old who's designing software, um, in middle school, uh, you can, you have people who have come to it from a variety of backgrounds. And so thinking about the evolution of tidy census, you know, I really started. Engaging in our programming around again, 20 12, 20 13 around, uh, Ramos our charts infrastructure. And there are a few people who are kind of making charts and, and, and tweeting them out. So the early sort of our stats, Twitter community was pretty important for me getting started out and and I've always worked very heavily with data from the census bureau coming from the university of Minnesota.

[00:15:17] My tool of choice has long been N H G I S the national historical geographic information system, which is a wonderful project that, um, provides sort of harmonized and kind of aligned spacial and, uh, and tabular data that you can download. Um, but like many census analysts, uh, I was very accustomed to and used to going to the census website and going through all the steps.

[00:15:45] So. I need to get my spatial data. So I'm gonna go to the tiger line, shape files website. I navigate through the menus. I'm gonna pull down the data that I need. I'm gonna unzip it. I'm gonna load it into RGIS. Now I need to get my demographic data. So I'm gonna go to what was then American fact finder, find the right tabulation, pull that down as a CSV, load that into RGIS.

[00:16:12] Now I need to join the tables together. Oh, but the sort of ID column in the shape file and the ID column in the CSV file, one is coded character and one is coded integer and I can't make the join. So I need to modify that. And this was sort of the process. And I wrote a lab for my introductory GIS students to do this.

[00:16:38] Cuz I knew it was important that they learned how to work with census data and they, it. The amount of time that they were spending on it, I would feel bad about it because it was a laborious process to get through. And this was for one analysis, every single analysis you would've to do this. And so I started dabbling a little bit in our package development, um, read Hadley's book on, on our packages and made my own personal our package.

[00:17:10] Uh, it's still up there on GitHub. If you wanna see it, it's kind of clunky, but it does a few things it's called KW G O and then started kind of experimenting, uh, with some of these things. And so, um, was talking through, uh, you know, interacting. It was on, on Twitter again, and someone had tweeted out kind of, I, I wish there were a package. That brought in census shape files into our, and automatically did that. And, um, a friend of mine, Eli NA who's, um, working out at the, uh, at UC Riverside, uh, said, well, Kyle, why don't you do that?

[00:17:55] And so I thought, sure, this has always been tedious. I don't like going to the census website every time and pulling the shape files. I can do that in R that would be fantastic. And that was the Tigris package. And so wrote Tigris first back in 2015. And I didn't really know what I was doing, but, uh, Bob Rus, for those of you in the sort of the, a stats, Twitter communities, one of the most prominent voices, he noticed the package.

[00:18:24] He just sort of came in and volunteered his time to make it actually work. And, um, Now nearly half a million downloads later it's, uh, it's pretty heavily used. So, so Tigris was, um, really my first major R package, but moving into tidy census, after Tigris came out, I started getting some, uh, consulting requests and, and people would sort of ask me to give talks on the package. And I was using tigers pretty heavily in my own work to really bring in the spatial data, but I didn't have sort of a seamless way to get the demographic data as well. And that was frustrating that the process was still fairly slow. And so I started writing some scripts that the process, basically used R to pull down some census data from the API and then kind of joined that with Tigris automatically to get enrich sort of spatial and demographic data. And I started to think, well, you know, this could be in our package and this is something that, you know, there are a lot of different ways that you can work with this data, but this is something I would use all the time. If I could have something where I could literally just say, give me income data for Multnomah county, Oregon with spatial data, and I can map it right away.

[00:19:54] And I can do that in a line of code that would be phenomenal and it would make my work so much easier. And so I ended up just kind of digging in for a few months and, and writing the package. And, uh, the response was really, really good. It's one of those things. When you develop in our package, sometimes the community picks it up.

[00:20:15] Sometimes it's mostly something you use for yourself. But, um, but people have found tidy census really useful. And, and that, that makes me really happy though. Frankly, if even if the package weren't successful, I would've still saved so much time because it is literally software that I use every single day. And, um, so that, that was sort of the evolution, maybe a long-winded evolution of the package, but it's kind of how it came to be.

[00:20:43] David: mean, that's interesting that I, I didn't realize, I guess that you did the Tigris package for getting shape files first, and it was only after that, that then you realized, oh, tidy census would, would kind of, uh, meet a need as well. Cuz for me personally, I, I did, I came to tidy census first, um, because all I, at that point, I wasn't, maybe I was doing a little bit of mapping, but I wanted, um, you know, just to get automate the process of getting data from the census bureau.

[00:21:09] And so tidy census was great. And then later on I realized, oh, this guy, Kyle has also written this package called Tigris. That allows me if I just want to get shape files or you can within tidy senses, bring in those shape files alongside the demographic files, which is, is super handy.

[00:21:26] So. Um, there's a section of my book talking about, um, you know, ways of automating your work. And it's using tidy census as an example of interfacing of working with an API. Um, if so I know like people just coming to programming here at API, and I know for me, like it was, it was kind of a scary thing.

[00:21:47] Um, so can you explain for someone who who's not familiar, what, what is an API and how does it work in the context of tidy census?

[00:21:56] Kyle: That's a great question. And frankly, it is something that, you know, often is useful to demystify because, you know, I teach, I teach at TCU, I've been teaching for several years now. Um, basically an intro to data analysis and visualization using Python, um, for frankly, non CS students. So mostly liberal arts and journalism and PR students take the class in some business.

[00:22:31] And so the, the class is designed in a way that kind of here are these programming concepts. How do we make them intelligible outside of someone who's deeply embedded in software engineering and APIs are intimidating at the outset for one, what is an application programming interface? You know, that sounds kind of intimidating and it's especially intimidating.

[00:22:59] If you see an, a, a JSON endpoint, which looks like a web address, and then you put it in your web browser and it spits out just this huge block of JSON, and you look at it, if you haven't seen anything like that before, and think what on earth is this? And so basically the way that I like to describe an API, um, at least in terms of web data resources.

[00:23:27] So a data API is a way that you can access data programmatically over the internet. There are lots of different ways to access data. You can go to a website and you can download an Excel spreadsheet or download a CSV file. You can connect to a database. There are lots of different ways to do it. Where an API is really useful is it exposes data in sort of a developer friendly format.

[00:23:59] So a format that can be readily consumed by another website or a programming language like our or Python, and allows you to stream that data directly into your application. So it's just trying to make it so developers can get access to data. And you know, when I'm teaching about APIs, we will interact with. A variety of APIs I'm in Fort worth, Texas. So Fort worth like many large cities has a contract with SRA to build out an open data API. And so we kind of, we step through it, you know, JSON, isn't so intimidating. It's just key value pairs rather than rows and columns, but, um, really kind of demystifying that and showing this is just a different way of thinking about data ends up being pretty important and where tidy census comes in. What tidy census tries to do is all of the tedious aspects of getting census data. It tries to do that for you. So that you can focus on the fun aspects of census data. So making maps is fun, analyzing data and finding out insights about your community is fun and interesting, but setting up a connector to an API or figuring out how to align columns in emerge, it's, it's more tedious.

[00:25:33] And so census tries to take away all the tedious stuff and do it for you. So what tidy census will do is users will request for a given level of aggregation. We call that geography. So in census terms, um, there are what we call enumeration units, which are, or kind of, or statistical areas. If you've heard of a census tract or a census block group, these are sort of small areas at which the census tabulates data.

[00:26:10] And then also what are called legal entities. So counties and states, which are both levels of aggregation in the census and, uh, kind of actual government units. And so you request data, say for counties, um, and then you plug in one or more census variable codes. And what tidy census will do is it will assemble all that information and construct a call to the census, open data API.

[00:26:45] It will go to the appropriate endpoint, which is typically the data set, um, from which you're requesting data. It will communicate with that. The census website bring the data back. The data comes back in JSON format. So JavaScript, object notation, and then tidy census does all the work of tidying up that JSON for you.

[00:27:07] So I, There are a lot of different ways that you could get data back. Um, tidy census returns, data in the format that I like the best. Um, and so it's kind of following Hadley Wickham's concept of tidy data by default. So it's what we'll typically call long form data, but it'll do all that sort of reshaping internally and, and give you back the data.

[00:27:34] So that's, that's kind of the process by which it works.

[00:27:38] David: Yeah, that's great. Actually, it's funny, cuz I was gonna ask like why, why tidy census? Um, because there's, there is one other, what's the PA it's like census API or there's some other package, right? That do that goes. I I, to be honest, I've never used it. I know it goes beyond what tidy census does in terms of allowing you to access different types of data or something.

[00:27:58] I, I don't know the specifics, but I know one other thing that differentiates it is that the tidy aspect that you, your package tidy census is very focused on getting data into that tidy format. So explain why, why you designed it, I guess in that way.

[00:28:16] Kyle: that's a good question. So, um, Hannah rec is the developer of census API. Uh, I mean, she's fantastic, brilliant programmer. And, um, if you haven't seen her data journalism work, uh, it's, it's really, really good stuff. And, and census API is, is a massive accomplishment. Um, and so package that I use quite regularly, so census API is. Another package that connects with the census APIs. It has sort of allied goals to tidy census, but, but different goals. So tidy census, and the reason why I wrote it, um, was I wanted a package that gave back census data for the data sets that I used that allowed for automated joining with S spatial data, because I needed S spatial census data for my projects, uh, in consulting, in, in my academic research.

[00:29:16] And so I have, I'm pretty opinionated about the format that I like to work with. And so I wrote the package, frankly, originally just for my own work. I thought, you know, this is something I want to have. And so I'm going to make it, um, and then I'll open source it. If somebody else finds it useful. Great.

[00:29:36] You know, if nobody else finds it useful, that's fine. um, because I'm still going to use it Hana's package. And the reason why I say it's a, it's a tremendous accomplishment is it actually connects to every single census API endpoint and census has hundreds of data sets. Some of which you probably never even heard of, uh, the big ones are the decennial census in the American community survey.

[00:30:01] So for listeners who are less familiar, the decennial us census, uh, is a complete count of the us population takes place every 10 years and focuses on a select number of demographic, characteristics of the us population, such as race, age, sex, and occupancy. The American community survey is an annual survey of a subset of us households around three and a half to 4 million us households now. And they do it every year. On a rolling basis. And that asks all sorts of other demographic questions. So, um, the core demographic questions, like race, ethnicity, age sex, but also education, income, uh, kind of housing, tenure, um, housing stock, family status, uh, lots of other things. Uh, and so, um, tidy census focused originally on those two data sets.

[00:31:07] And over the years has incorporated with the help of my co-author Matt Herman, who joined his co-author a few years ago. Uh, it's incorporated a few other data sets, including, uh, individual level micro data, which is one of my favorite features of the package and then migration flows data and, uh, and the population estimates.

[00:31:29] We're always sort of adding new features as we go census API. Automatically connects. Hannah wrote the package to be generalizable. So you can actually go in and you specify which dataset you want. And it provides a single general interface through a function called get census to any of those, um, census API endpoint.

[00:31:51] It's, uh, it's, it's a challenge to maintain. Certainly I, I admire the work that she does quite a bit because you know, these APIs change from time to time and, uh, occasionally modifications are made. It returns the data in more, I would say a rawer format than tidy census does tidy census does, uh, some sort of opinionated data wrangling, uh, internally, if you want something more raw from the census API, that's closer to what, um, the actual request gives back then.

[00:32:27] The census API package is a good, good place to look.

[00:32:31] David: Gotcha. So it brings it in, does that wrangling basically puts it in a, in a tidy format, which, um, I'm actually in the process right now of teaching people about tidy data as a concept and the, the logistics of getting your data in a tidy format. That's, that's a huge, a huge benefit to be able to, you know, access data from decennial census ACS and a few other things. And get that data back in that tidy format is a, is a huge time saver. Um, great. Is there anything else you think would be useful to talk about?

[00:33:07] Kyle: you honestly, um, again, being able to do this quickly is, was my major motivation for writing the package and what this opens up are there is so many different kind of maps you can make. So, um, I have a book coming out. It's called analyzing us census data methods, maps, and models in our CRC press this fall.

[00:33:31] You can pre-order it today. And, uh, it's available also to read for free online. So, um, you know, it'd be great if you all go pick up a copy cuz you know, that helps me maintain the free version, but it is free and six, which incidentally is the most visited chapter of the book by far, um, is all about mapping census data. So, you can learn in here how to make all sorts of types of maps, density maps, which I quite like, uh, graduated symbol maps, interactive maps.

[00:34:07] Um, there are a lot of different options that you can explore and. Frankly. That's what often excites me the most. When I see people using tidy census, because this is the creative part of analyzing and visualizing data. And if tidy census help people get to that creative aspect of their data work faster, then there's so many interesting things that can be done with census data, because they're so applicable to a wide range of different fields.

[00:34:43] And I will say as well, cuz David, you all have listeners from all over the world who might be saying, you know, this is so we've got, you know, the us census data, you know, I'm interested in my country or I'm interested in a different country. So I encourage you to check out my book chapter 12, uh, which talks about international census data.

[00:35:06] And shows some resources for census data around the world and these different methods that, that we've been talking about. Uh, there are a few other packages that are really, really good that, uh, can apply similar types of visualization methods to this, to, uh, to non-US contexts. So. Absolutely.

[00:35:28] David: great. Yeah. And I get like, I, um, Talking to you, you know, I'm based in the us. I, I know, you know, a lot of folks are, and I, I use us census bureau data a lot, but the overall idea that you can AC use R as a way to access data through an API and pull it in, in a way that's so much more efficient than the Al than the manual alternatives that applies way beyond, you know, this specific tidy census example.

[00:35:59] And the nice thing about our being open source is people have made packages to allow you to access data from the Kenyan census or, you know, any other, any other. Source, I've been pretty shocked actually at how many, you know, the wide variety of packages that can help you do that. Um, super well, this has been really, really helpful.

[00:36:20] Um, I will definitely include a link to your book. Um, where else can people find more information, um, about you, if they're interested in learning more about your work

[00:36:33] Kyle: absolutely. So I'm on the [email protected]. That's my consultancy website. And so if any listeners are needing help with any of this stuff, feel free to send me a note. Um, I work with everyone from large companies to individuals and, uh, you can follow me on Twitter. Uh, I'm I'm off and on, on Twitter in terms of how active I am, but that is often where I do share.

[00:36:59] New features that I'm developing. I also have a mailing list that you can join. Uh, the link to that is on the tidy census documentation and, uh, check out my GitHub as well. So that's a good place to stay on top of new features that are coming through, um, tigers and tidy census are, are the packages that people are most familiar with.

[00:37:20] But I have a few other packages too, that, that you might find useful. So, uh, check on my GitHub. I'm reasonably active over there as well, but, uh, yeah, drop me a line. If anyone wants to chat further, I'm at [email protected] and I love hearing from people.

[00:37:37] David: Great. Um, well, thanks again, Kyla. I really appreciate you taking the time to share all of this with us.

[00:37:42] Kyle: Yeah, of course. Thanks, David. This is a lot of fun.

[00:37:45] Thanks again for listening. I hope you found this conversation. Interesting. If you have any feedback, I'd love to hear it, David, at our, for the rest of us.com. Thanks.

Sign up for the newsletter

Get blog posts like this delivered straight to your inbox.

Let us know what you think by adding a comment below.

You need to be signed-in to comment on this post. Login.

David Keyes
By David Keyes
May 9, 2023

Sign up for the newsletter

R tips and tricks straight to your inbox.