假设我有一个包含5个元素的列表:
这将返回:
list
list <- list("A", "B", "C", "D", c("E", "F"))
我正在尝试使用purrr
将其转换为简单的字符向量,需要将具有两个字符串的列表元素合并为一个,以'-'分隔。输出应该如下所示:
chr [1:5] "A" "B" "C" "D" "E-F"
我尝试了很多方法,包括paste,paste0,str_c等,但我卡住的地方在于map函数似乎将函数应用于列表元素的每个单独字符串,而不是元素中字符串组(当有多个字符串时)。我最接近的方法是:
list2 <- unlist(map(list, str_flatten))
str(list2)
这将返回:
chr [1:5] "A" "B" "C" "D" "EF"
我需要在E和F之间加上连字符:
chr [1:5] "A" "B" "C" "D" "E-F"
当我尝试将函数作为括号内的参数传递给str_flatten()
时,例如str_flatten(list, collapse = "-")
,它不起作用。大问题在于我无法弄清楚在str_flatten
中传递什么字符串作为参数,以便将列表中给定元素的两个字符串分组。