如何在R中堆叠字符列表的元素

时间:2019-04-11 14:21:54

标签: r

我想堆叠3个字符列表。

我已经尝试过rbind(),rbindlist(),bind_rows(),但是我没有达到正确的最终结构。

我的原始字符列表如下:

list1 = list("16403074 L3 2", "16603059 L3 2")
list2 = list("0 1", "0 1")
list3 = list("1.7 0.75514 -1.62403 0.06183" ,"1.7 0.42851 0.52817 0.08137")

我希望最终输出看起来像这样:

"16403074 L3 2"
"0 1"
"1.7 0.75514 -1.62403 0.06183"
"16603059 L3 2" 
"0 1"
"1.7 0.42851 0.52817 0.08137" 

因此,每个列表的对应元素都被堆叠。

3 个答案:

答案 0 :(得分:0)

假设每个列表的长度相同,我们可以使用

unlist(matrix(c(list1, list2, list3), , 2, byrow = TRUE))
# [1] "16403074 L3 2"                "0 1"                          "1.7 0.75514 -1.62403 0.06183"
# [4] "16603059 L3 2"                "0 1"                          "1.7 0.42851 0.52817 0.08137" 

诀窍在于首先构建

matrix(c(list1, list2, list3), , 2, byrow = TRUE)
#      [,1]                           [,2]                         
# [1,] "16403074 L3 2"                "16603059 L3 2"              
# [2,] "0 1"                          "0 1"                        
# [3,] "1.7 0.75514 -1.62403 0.06183" "1.7 0.42851 0.52817 0.08137"

替代品是

unlist(do.call(rbind, list(list1, list2, list3)))
unlist(data.table::rbindlist(list(list1, list2, list3)))

答案 1 :(得分:0)

您可以使用$inputDate = [datetime]::Parse((Read-Host "Please enter a start date [DD/MM/YYYY]")) $refDate = Get-Date -Day 6 -Month 12 -Year ($inputDate.Year + 1) $days = ($refDate - $inputDate).Days unnest()中的tidyr

tidyverse

答案 2 :(得分:0)

您是否正在寻找类似的东西-

> cat(paste(unlist(c(list1, list2, list3))), sep="\n")

OR

> writeLines(paste(unlist(c(list1, list2, list3))), sep="\n")

16403074 L3 2
16603059 L3 2
0 1
0 1
1.7 0.75514 -1.62403 0.06183
1.7 0.42851 0.52817 0.08137