[英]Add header and footer to data in write.table()
我有数百个数据文件,我需要为r中的每个文件添加一个页眉(文件中数据的开头)和页脚(文件中数据的结尾),如下所示:
标头:
line1
line2
line3
同样,我想在每个数据文件的末尾添加页脚
页脚:
line1
line2
line3
使用write.table()在r中写表时。 有人可以提出一个简单的解决方案吗? 谢谢
也许是这样的:
lapply( c('dobjt1', 'dobjct2', 'other3'),
function(x) {
name <- paste0( x, ".txt")
write(c(line1,line2,line3), file=name)
out <- get(x); Need to use `get` when working with character values
write.table(out, file=name, append=TRUE)
write(c(line1,line2,line3), file=name, append=TRUE)
})
在@ 42解决方案中添加步骤以从磁盘读取文件列表,并为它们指定文件名作为数据帧名称,这将导致一个完整,有效的解决方案。
我们将使用来自kaggle.com的Alex Barradas的“PokémonStats”数据集作为示例。
download.file("https://github.com/lgreski/PokemonData/raw/master/pokemonData.zip",
"pokemonData.zip",mode="wb",method="wininet")
unzip("pokemonData.zip")
thePokemonFiles <- list.files("./pokemonData",
full.names=FALSE)[1:3] # subset to first 3 files
pokemonData <- lapply(thePokemonFiles,function(x) {
data <- read.csv(paste("./pokemonData/",x,sep=""))
# set input file name as object name so file list can be used in lapply() for write
assign(x,data,parent.env(environment()))
NULL # null return to avoid duplicating data frames in output list
})
header <- c("header 1","header 2","header 3")
footer <- c("footer 1","footer 2","footer 3")
lapply(thePokemonFiles, function(x) {
name <- paste0(x, ".txt")
write(header, file = name)
write.table(get(x), file = name, append = TRUE)
write(footer, file = name, append = TRUE)
})
...以及第一代神奇宝贝生成的文本文件的前几行是:
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.