折叠粘贴列表结构包括R中的转义引号和c()
原谅我,如果这是非常基本的,但它让我发疯 我有一个大型嵌套列表对象,其中“叶”元素是字符向量。这方面的一个简单表示是:折叠粘贴列表结构包括R中的转义引号和c(),r,list,paste,R,List,Paste,原谅我,如果这是非常基本的,但它让我发疯 我有一个大型嵌套列表对象,其中“叶”元素是字符向量。这方面的一个简单表示是: dummy <- list(c('A', 'B', 'C')) 所以我得到了输出 Start > A|B|C > End 但我得到的是 [1] "Start > c(\"A\", \"B\", \"C\") > End" 这里有所有这些附加字符和转义引号。我做错了什么 即使使用recursive=FALSE,我也不会使用unlist(),因为
dummy <- list(c('A', 'B', 'C'))
所以我得到了输出
Start > A|B|C > End
但我得到的是
[1] "Start > c(\"A\", \"B\", \"C\") > End"
这里有所有这些附加字符和转义引号。我做错了什么
即使使用recursive=FALSE,我也不会使用unlist(),因为这会折叠我的三个字符序列。对于您的示例,这是有效的:
dummy <- list(c('A', 'B', 'C'))
> sprintf('Start > %s > End',paste0(unlist(dummy),collapse = '|'))
[1] "Start > A|B|C > End"
如果
列表
中只有一个元素是字符
向量,如图所示,则可以尝试rappy
rapply(object = dummy,classes = "character",
function(t){paste0("Start > ",paste(t,collapse = "|")," > End")})
就这么做吧,它已经是一个列表了。这是由一个更广泛的结构预定义的,所以我只是尝试模拟一个可复制的示例。我的意思是不要使用列表使用此
虚拟您可以共享列表的结构吗?感谢您的回复;瓦尔的解决方案正是我想要的。
dummy2 <- list(dummy[[1]],c('D','E','F'))
> sprintf('Start > %s > End',paste0(unlist(dummy2),collapse = '|'))
[1] "Start > A|B|C|D|E|F > End"
> lapply(dummy2, function(x) sprintf('Start > %s > End',paste0(x,collapse = '|')))
[[1]]
[1] "Start > A|B|C > End"
[[2]]
[1] "Start > D|E|F > End"
rapply(object = dummy,classes = "character",
function(t){paste0("Start > ",paste(t,collapse = "|")," > End")})