R Writing list of lists (.txt) with spaces between them in R
假设我在R中有一个列表列表,例如:
列表1包含10对坐标(x,y)
列表2包含20对坐标(x,y)
...
列表20包含10对坐标(x,y)
我想用这些列表写一个输出(.txt)文件。在每个列表的末尾,我想添加一个空白行来分隔它们。
我已经知道了
p2 = as.data.frame(do.call(rbind,p)),如果p是我的列表列表
将更改为数据框。
然后write.table(p2,file =" forest",row.names = FALSE)将打印每个列表,但不带空格。有人能帮我吗?是否可以像cat("",p)一样在此处使用" cat"?
预先感谢!
使用cat(),您肯定走在正确的Rails上。在下面,我创建了一个列表列表(大小不一)。然后,在将每个列表转换为data.frame类对象之后,我遍历每一个将其写入文本文件。在每个write.table()调用之后,我使用cat()输入一个空格(" \\
")。
这可能会在您的终端上运行(可能会收到一条警告消息,提示它正在打印列名-不用担心...该txt文件仍会生成),并会输出一个名为test.txt的txt文件到您的工作目录(getwd())。
1 2 3 4 5 6 7 8 9 | exp_list<-list(list(x=rnorm(10,500,10),y=rnorm(10,500,10)), list(x=rnorm(20,500,10),y=rnorm(20,500,10)), list(x=rnorm(20,500,10),y=rnorm(20,500,10))) for(i in 1:length(exp_list)){ write.table(data.frame(exp_list[[i]]),file='test.txt',append=TRUE, row.names=FALSE) cat('\ ',file='test.txt',append = TRUE) } |
使用来自Arman的样本数据
1 2 3 4 5 6 7 8 9 10 11 | library(dplyr) exp_list<-list(list(x=rnorm(10,500,10),y=rnorm(10,500,10)), list(x=rnorm(20,500,10),y=rnorm(20,500,10)), list(x=rnorm(20,500,10),y=rnorm(20,500,10))) exp_list %>% lapply(as.data.frame) %>% bind_rows(.id ="ID") %>% mutate(ID = as.numeric(ID) ) %>% write.table(sep ="", row.names = FALSE) |