I've been updating four R packages for working with AI and workforce data. These are add-ons for R, the programming language used for data analysis. They handle parts of the work that would otherwise need their own code.
In June, I wrote about onet2r. This post brings that story up to date and covers huggingfaceR, foundryR, and cmapr too. Some updates are in a released version. Others are available on GitHub while development continues. That distinction matters when you choose what to install.
huggingfaceR 2.2.0 is on CRAN
Hugging Face hosts AI models and datasets. huggingfaceR connects R to those services. One use is turning public course descriptions into a table of credentials and subject areas, then reviewing what the model extracted.
Version 2.2.0 is now available on CRAN, the main package repository for R. Its newer functions recognize Hugging Face's standard token setting. A token is a private code that lets the service recognize your account. This makes setup easier if you already use Hugging Face. AI requests can also be billed to an organization rather than your personal account.
The package can now list hosting services for more kinds of models, including models that classify text. Previously, that lookup leaned on a catalogue built for chat. Finding a service does not mean every task can run through the package, so check the documentation for the model and task you plan to use.
The GitHub version includes further fixes beyond the CRAN upload. One keeps downloaded datasets from accidentally gaining extra rows when a field contains several items. Those items now stay together in the original row. Another gives clearer guidance when a model-and-service combination is unsupported.
Both the CRAN and GitHub copies currently carry the version label 2.2.0. For those additional fixes, the installation source matters. The huggingfaceR documentation explains the available tasks and setup.
foundryR has clearer Azure settings
foundryR is for people who use AI models hosted on Microsoft's Azure cloud service from R. An existing use is turning survey responses into columns you can analyze while keeping the original record IDs. If a request fails, the package can record the error for that row so you can inspect it.
The recent work focuses on setup and handling requests. Model connections and project connections now have separate sign-in settings. Follow-up requests, such as checking or cancelling an AI agent's work, can go back to the correct project. Some checks for harmful text or images can also use Azure sign-in credentials instead of a stored service key.
Saved settings now live in foundryR's own file instead of R's general startup settings. That file is plain text, so it should not be treated as a secure place to store credentials. For jobs that send several requests at once, the default has been reduced to two. This is a more cautious starting point for working within a service's limits, not a spending cap.
I've submitted foundryR 0.1.0 to CRAN. It was still unlisted when I checked on September 5, so the installation route for now is GitHub. The package remains experimental. The setup guide explains the Azure account and model setup you need.
onet2r makes changes in occupation data easier to interpret
O*NET is the US Department of Labor's database of what jobs involve. In the June post, I explained why comparing its releases takes care. A number can stay the same because it was copied from an older survey. A change can come from a new occupation code rather than a change in the work itself.
The July 0.4.2 release repaired crosswalk downloads, the files that connect old and new occupation codes. It also made missing-data warnings clearer and improved how changes are counted when one occupation splits into several. A new helper reads O*NET's own record of which occupations were updated.
The development version, 0.5.0.9000, adds more explicit checks on whether an occupation was surveyed again. It also separates changes in which tasks appear on a job's list from changes in how those tasks are rated. Losing an item from a task list and changing its importance rating tell you different things.
There are also new ways to bring in AI-exposure scores from published research. These estimate how much a job's work overlaps with AI capabilities. They remain scores for whole occupations, even when attached to individual tasks in a table. They help connect existing measures to an analysis; they do not establish that AI caused a change in a job.
Source records now keep more detail about downloaded files, including a fingerprint that can reveal whether a saved file has changed. Duplicate task-score entries are rejected rather than counted twice. And when the Bureau of Labor Statistics blocks an automatic download, the package has better support for using a file you downloaded yourself.
The development changes are available from GitHub, beyond the 0.4.2 release. The onet2r documentation walks through the comparisons and their limits.
cmapr's recent changes fix sector summaries and examples
cmapr works with CMap, a research dataset linking job titles and career moves. One part of it describes how strongly a job title is associated with a sector. That can help when similar titles appear in different parts of the economy.
The recent changes are smaller than the ones above. I fixed sector summaries so they work when optional text analysis is turned off. I also replaced an example that depended on local data files with a small, self-contained example. The documentation now explains the summary output more clearly.
The source career histories extend through 2017. They are useful for exploring historical patterns, with the limits of that sample in mind. A path connecting several job titles can combine moves made by different people. It should not be read as one person's career history or their probability of getting promoted.
cmapr is still development software. The documented sector-summary example is a good place to start. The documentation and source code are available online.
Where to get them
If you're starting with huggingfaceR, the CRAN version installs in the usual way.
install.packages("huggingfaceR")
For its latest development fixes, use the GitHub installation instructions. foundryR, onet2r, and cmapr were not listed on CRAN when I checked on September 5; their GitHub pages explain how to install them.
- huggingfaceR on GitHub, including the fixes beyond the CRAN upload.
- foundryR on GitHub, currently 0.1.0.
- onet2r on GitHub, currently the 0.5.0.9000 development version. The 0.4.2 release is available separately.
- cmapr on GitHub, currently a development package.
The packages are free and open source. Hosted AI services can charge for use, and you should check what data you are allowed to send before submitting text to a service. I suggest starting with a small example and inspecting the output before running a larger job.
If you try one of these packages, a short example of what worked or where you got stuck would help me decide what to improve next.