R从没有c(...)的列表中粘贴矢量值并打印到文件
R paste vector values from list without c(...) and print to file
我有两个数据集,一个包含索引列表,另一个包含数字列表。
v <- c("a", "b", "c", "d")
lst <- list(c("4", "75097", "72607", "72607", "62572"), NA, c("5", "113116", "5372", "5372", "11767"), c("4", "11767", "85822", "85822", "82080", "82080", "77055"))
我想并排打印它们并将结果输入 txt
文件,代码如下:
connect <- file("new.txt")
writeLines(paste(v, lst, sep=" "), connect)
close(connect)
我得到的结果是这样的:
a c("4", "75097", "72607", "72607", "70692", "70692", "69112", "69112", "62572")
b NA
c c("5", "113116", "5372", "5372", "11767", "11767", "85822", "85822", "82080", "82080", "77055")
......
如何在没有 c(...)
的情况下在 lst
上打印矢量字符串来给出此结果?
a 4 75097 72607 72607 62572
b NA
c 5 113116 5372 5372 11767
d 4 11767 85822 85822 82080 82080 77055
我们可以用Map
到paste
的list
元素与vector
对应的元素
out <- Map(function(x, y) paste(x, paste(y, collapse=' '), sep= ' '), v, lst)
或使用sapply
将list
、paste
内容一起循环,然后paste
与vector
out <- paste(v, sapply(lst, paste, collapse=' '))
对于打印,我们可以使用cat
cat(unlist(out, use.names = FALSE), sep="\n")
#a 4 75097 72607 72607 62572
#b 5 113116 5372 5372 11767
#c 4 11767 85822 85822 82080 82080 77055
#d 5 79414 79867 79867 80161 78893 79867 79867 80650 80650 80161
我有两个数据集,一个包含索引列表,另一个包含数字列表。
v <- c("a", "b", "c", "d")
lst <- list(c("4", "75097", "72607", "72607", "62572"), NA, c("5", "113116", "5372", "5372", "11767"), c("4", "11767", "85822", "85822", "82080", "82080", "77055"))
我想并排打印它们并将结果输入 txt
文件,代码如下:
connect <- file("new.txt")
writeLines(paste(v, lst, sep=" "), connect)
close(connect)
我得到的结果是这样的:
a c("4", "75097", "72607", "72607", "70692", "70692", "69112", "69112", "62572")
b NA
c c("5", "113116", "5372", "5372", "11767", "11767", "85822", "85822", "82080", "82080", "77055")
......
如何在没有 c(...)
的情况下在 lst
上打印矢量字符串来给出此结果?
a 4 75097 72607 72607 62572
b NA
c 5 113116 5372 5372 11767
d 4 11767 85822 85822 82080 82080 77055
我们可以用Map
到paste
的list
元素与vector
out <- Map(function(x, y) paste(x, paste(y, collapse=' '), sep= ' '), v, lst)
或使用sapply
将list
、paste
内容一起循环,然后paste
与vector
out <- paste(v, sapply(lst, paste, collapse=' '))
对于打印,我们可以使用cat
cat(unlist(out, use.names = FALSE), sep="\n")
#a 4 75097 72607 72607 62572
#b 5 113116 5372 5372 11767
#c 4 11767 85822 85822 82080 82080 77055
#d 5 79414 79867 79867 80161 78893 79867 79867 80650 80650 80161