Kon*_*rad 0 string r list strsplit
我有一个类似下面的列表:
# Initial object
vec <- c("levelA-1", "levelA-2", "levelA-3",
"levelB-1", "levelB-2", "levelB-3")
lstVec <- strsplit(x = vec, split = "-")
Run Code Online (Sandbox Code Playgroud)
我想到达以下结构列表:
lstRes <- list(levelA = list(1:3),
lvelB = list(1:3))
Run Code Online (Sandbox Code Playgroud)
该列表具有以下特征:
strsplit这些列表的元素创建的第二级元素小智 5
这足够了:
mat <- do.call(rbind, lstVec)
result <- split(mat[,2], mat[,1])
Run Code Online (Sandbox Code Playgroud)
的do.call和rbind的结果栈lstVec由行成矩阵(由于G.格罗滕迪克指出这个不是数据帧),则split分割mat[,2]通过mat[,1].
正如Aaron所说,你想要嵌套列表,这有点奇怪.但你可以得到它
lapply(result, as.list)
Run Code Online (Sandbox Code Playgroud)
我不确定有多好rbind.但另一种获得的方式mat是
mat <- matrix(unlist(lstVec), ncol = 2, byrow = TRUE)
Run Code Online (Sandbox Code Playgroud)