Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/css/39.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在数据框列表中写入不同年份以使用R分隔文本文件_R_Writing - Fatal编程技术网

在数据框列表中写入不同年份以使用R分隔文本文件

在数据框列表中写入不同年份以使用R分隔文本文件,r,writing,R,Writing,我创建了一个按年份分隔的元素列表,如下所示: 1961: 'data.frame': 365 obs of 4 variables: ..$ Year: int [1:365] ..$ Rainfall: int [1:365] ..$ PET: int [1:365] ..$ MeanT: int [1:365] 1962: 'data.frame': 365 obs of 4 variables: ..$ Year: int [1:365] ..$ Rainfall: int [1:365]

我创建了一个按年份分隔的元素列表,如下所示:

1961: 'data.frame': 365 obs of 4 variables:
..$ Year: int [1:365]
..$ Rainfall: int [1:365]
..$ PET: int [1:365]
..$ MeanT: int [1:365]
1962: 'data.frame': 365 obs of 4 variables:
..$ Year: int [1:365]
..$ Rainfall: int [1:365]
..$ PET: int [1:365]
..$ MeanT: int [1:365]
…一直到2007年。我想为每一年创建单独的文本文件,以便在另一个程序中使用,其中包含不带列标题的四列数据


在excel中执行此操作很简单,但我有大量数据要处理,希望能够使用R来自动化此过程并节省大量时间。

我知道这是R异端,但即使它可能运行较慢,for循环也会使从列表项名称中获取文件名变得容易:

for(i in 1:length(mylist)){
  filename <- paste0(names(mylist)[i],".csv")
  write.table(mylist[[i]], file=filename, row.names = FALSE, col.names = FALSE, sep=",")
}
for(1中的i:长度(mylist)){

filename我知道这是异端,但即使它可能运行得较慢,for循环也会使从列表项名称中获取文件名变得容易:

for(i in 1:length(mylist)){
  filename <- paste0(names(mylist)[i],".csv")
  write.table(mylist[[i]], file=filename, row.names = FALSE, col.names = FALSE, sep=",")
}
for(1中的i:长度(mylist)){

filename我知道这是异端,但即使它可能运行得较慢,for循环也会使从列表项名称中获取文件名变得容易:

for(i in 1:length(mylist)){
  filename <- paste0(names(mylist)[i],".csv")
  write.table(mylist[[i]], file=filename, row.names = FALSE, col.names = FALSE, sep=",")
}
for(1中的i:长度(mylist)){

filename我知道这是异端,但即使它可能运行得较慢,for循环也会使从列表项名称中获取文件名变得容易:

for(i in 1:length(mylist)){
  filename <- paste0(names(mylist)[i],".csv")
  write.table(mylist[[i]], file=filename, row.names = FALSE, col.names = FALSE, sep=",")
}
for(1中的i:长度(mylist)){

filename在与Pad聊天后,我们在reddit上找到了一个解决方案,它基于akrun和Pierre在上面的评论:

lapply(names(lst),function(x) write.table(cbind(c(1:dim(lst[[x]])[1]), lst[[x]][-1]), file = paste0('',x,'.txt'), quote = F, row.names = F, col.names = F, sep = ","))

除了写入文件外,代码还删除了第一列,用1-365的数字替换它(或用1替换提供的data.frame中的行数)。

在与Pad聊天后,我们在reddit上找到了一个解决方案,它基于akrun和Pierre在上面的评论:

lapply(names(lst),function(x) write.table(cbind(c(1:dim(lst[[x]])[1]), lst[[x]][-1]), file = paste0('',x,'.txt'), quote = F, row.names = F, col.names = F, sep = ","))

除了写入文件外,代码还删除了第一列,用1-365的数字替换它(或用1替换提供的data.frame中的行数)。

在与Pad聊天后,我们在reddit上找到了一个解决方案,它基于akrun和Pierre在上面的评论:

lapply(names(lst),function(x) write.table(cbind(c(1:dim(lst[[x]])[1]), lst[[x]][-1]), file = paste0('',x,'.txt'), quote = F, row.names = F, col.names = F, sep = ","))

除了写入文件外,代码还删除了第一列,用1-365的数字替换它(或用1替换提供的data.frame中的行数)。

在与Pad聊天后,我们在reddit上找到了一个解决方案,它基于akrun和Pierre在上面的评论:

lapply(names(lst),function(x) write.table(cbind(c(1:dim(lst[[x]])[1]), lst[[x]][-1]), file = paste0('',x,'.txt'), quote = F, row.names = F, col.names = F, sep = ","))

除了写入文件外,代码还删除了第一列,用1-365之间的数字(或1到提供的data.frame中的行数)替换它。

您可以使用
lappy
lappy(名称(lst),函数(x)write.csv(x,file=paste0('file',x,.csv'),引号=FALSE,row.names=FALSE))
try:
lappy(mylist,函数(x)write.table(x,file=myfilename,quote=FALSE,col.names=FALSE))
@akrun感谢您的帮助-这会写入所有文件,但它们不是按年份填充的数据。每个文本文件只包含相应的年份。很抱歉,我不理解您的评论。如果有空列表元素,您需要将其子集。
lst1您可以使用
lappy
lappy(名称(lst)),函数(x)write.csv(x,file=paste0('file',x',.csv'),quote=FALSE,row.names=FALSE))
try:
lapply(mylist,函数(x)write.table(x,file=myfilename,quote=FALSE,col.names=FALSE))
@akrun感谢您的帮助-这会写入所有文件,但它们不是按年份填充的数据。每个文本文件只包含相应的年份。很抱歉,我不理解您的评论。如果有空列表元素,您需要将其子集。
lst1您可以使用
lappy
lappy(名称(lst)),函数(x)write.csv(x,file=paste0('file',x',.csv'),quote=FALSE,row.names=FALSE))
try:
lapply(mylist,函数(x)write.table(x,file=myfilename,quote=FALSE,col.names=FALSE))
@akrun感谢您的帮助-这会写入所有文件,但它们不是按年份填充的数据。每个文本文件只包含相应的年份。很抱歉,我不理解您的评论。如果有空列表元素,您需要将其子集。
lst1您可以使用
lappy
lappy(名称(lst)),函数(x)write.csv(x,file=paste0('file',x',.csv'),quote=FALSE,row.names=FALSE))
try:
lapply(mylist,函数(x)write.table(x,file=myfilename,quote=FALSE,col.names=FALSE))
@akrun感谢您的帮助-这会写入所有文件,但它们不会被数据填充,而是按年份填充。每个文本文件只包含相应的年份。很抱歉,我不理解您的评论。如果有空列表元素,您需要对其进行子集。
lst1非常感谢此操作!输出仍然存在问题虽然,我希望每个文本文件在每行的开头都有数字1-365,但这只适用于第一年,之后是366-730,依此类推。它还打印每个文本文件的年份,这是我不想要的。我只想要从1-365开始的那一天,我会玩它,看看我是否可以修复它!谢谢你的帮助。非常感谢这本书ks!虽然输出仍然有问题,我希望每个文本文件在每行的开头都有数字1-365,但这只适用于第一年,之后是366-730,依此类推。它还为每个文本文件打印年份,我不想要。我只想要从1-365开始的那一天,我会处理它,看看是否可以修复它!谢谢你的帮助。非常感谢!虽然输出仍然有问题,我希望每个文本文件在每行的开头都有数字1-365,但这只适用于第一年,之后是366-730,依此类推。它还打印每个文本文件的年份,我不想要。我只想要从1-365开始的一天,我将玩一玩,看看我能不能修好它!谢谢你的帮助。非常感谢这是有效的!但是输出仍然有问题,我希望每个文本文件在每行的开头都有数字1-365,但这只适用于