Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/r/75.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
在for循环中写入许多文件_R - Fatal编程技术网

在for循环中写入许多文件

在for循环中写入许多文件,r,R,我有这样的样本数据 df <- data.frame(name = rep(letters[1:7], each = 24), salary = runif(24*7, 100, 200)) 有人能建议对for循环进行修改吗?试试这个 for (ii in names(lst)){ filename <- paste(ii, ".txt", sep="") write.table(lst[[ii]], filename, col.names=FALSE,row.names=

我有这样的样本数据

df <- data.frame(name = rep(letters[1:7], each = 24), salary = runif(24*7, 100, 200))
有人能建议对for循环进行修改吗?

试试这个

for (ii in names(lst)){
  filename <- paste(ii, ".txt", sep="")
  write.table(lst[[ii]], filename, col.names=FALSE,row.names=FALSE,sep="\t",quote=FALSE)
}
<代码>用于(名称中的ii(lst)){
文件名给定您的
lst
,以下内容会将其写入一系列TXT文件,其名称等于
lst
,加上
.TXT

lapply(names(lst),
       function(x, lst) write.table(lst[[x]], paste(x, ".txt", sep = ""),
                                    col.names=FALSE, row.names=FALSE, sep="\t", 
                                    quote=FALSE),
       lst)
要修改
for()
循环,请尝试:

for(i in seq_along(lst)) {
    write.table(lst[[i]], paste(names(lst)[i], ".txt", sep = ""), 
                col.names = FALSE, row.names = FALSE, sep = "\t", quote = FALSE)
}

问题是试图或假设R将为您粘贴文件名。

谢谢!因此我们必须在for循环中添加另一条语句来保存文件名…好极了,您可以直接传递
write.table(lst[[ii]],粘贴(ii,.txt),sep=“”),col.names=FALSE,row.names=FALSE,sep=“\t”,quote=FALSE)
但我认为用两行文字会更清楚。
lapply(names(lst),
       function(x, lst) write.table(lst[[x]], paste(x, ".txt", sep = ""),
                                    col.names=FALSE, row.names=FALSE, sep="\t", 
                                    quote=FALSE),
       lst)
for(i in seq_along(lst)) {
    write.table(lst[[i]], paste(names(lst)[i], ".txt", sep = ""), 
                col.names = FALSE, row.names = FALSE, sep = "\t", quote = FALSE)
}