R - 将二维向量转换为一维命名向量

标签 r purrr

怎样才能更优雅地做到这一点?我希望将键值对向量作为连接字符串转换为以键作为名称的值向量。

library(tidyverse)
library(purrr)

x <- c("key1|value1", "key2|value2")

# Current way
x_split <- x %>% str_split("\\|")
keys <- x_split %>% map(pluck(1)) %>% unlist()
values <- x_split %>% map(pluck(2)) %>% unlist()

y <- values %>% set_names(keys)

# More elegant way
y <- x %>% some_functions()

最佳答案

您可以在 str_split 中使用 simplify = TRUE 并使用 set_names

stringr::str_split(x, "\\|", simplify = TRUE) %>% {purrr::set_names(.[, 2], .[, 1])}

#    key1     key2 
#"value1" "value2" 

关于R - 将二维向量转换为一维命名向量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61492891/

相关文章:

R - `purrr::map()` 中的复合函数与管道函数

r - 如何在 purrr 中的多个数据集上拟合多个模型?

r - 在 R 中替换嵌套 for 循环的最佳方法

r - 求解 R 中混合模型方程的积分

r - 在不创建列表列或过多行的情况下旋转更宽

r - 在数据帧上逐行应用函数,与列数无关

r - 在 R 中编码高斯对数似然

r - 为什么 map_if() 在列表中不起作用

r - 如何使用 walk 以 purrr 静默绘制 ggplot2 输出

r - 如何在 R 中复制每个组级别的特定行数