Converting two columns of a data frame to a named vector

Solution 1:

Use the names function:

whatyouwant <- as.character(dd$name)
names(whatyouwant) <- dd$crit

as.character is necessary, because data.frame and read.table turn characters into factors with default settings.

If you want a one-liner:

whatyouwant <- setNames(as.character(dd$name), dd$crit)

Solution 2:

You can also use deframe(x) from the tibble package for this.

tibble::deframe()

It converts the first column to names and second column to values.