Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/r/67.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
Python rbind选定点txt文件列表_Python_R - Fatal编程技术网

Python rbind选定点txt文件列表

Python rbind选定点txt文件列表,python,r,Python,R,我在一个文件夹中有很多点文件。我想根据文件夹中所有点文件中所选点文件的列表进行rbind(在单个txt文件中一个接一个垂直排列) 文件夹中的多个点文件 CSV文件中选定点文件的列表 输出将是一个单一的CSV文件,由所选点文件的所有XYZ组成。如果您的pts文件是结构完全相同的简单文本文件,则可以使用MSDOS命令Copy将文件连接到单个文件中。这是讨论过的。您可以使用R中的一个简单for循环来实现这一点 setwd("D:/TEST") ( p <- list.files(

我在一个文件夹中有很多点文件。我想根据文件夹中所有点文件中所选点文件的列表进行rbind(在单个txt文件中一个接一个垂直排列)

文件夹中的多个点文件

CSV文件中选定点文件的列表


输出将是一个单一的CSV文件,由所选点文件的所有XYZ组成。

如果您的pts文件是结构完全相同的简单文本文件,则可以使用MSDOS命令Copy将文件连接到单个文件中。这是讨论过的。

您可以使用R中的一个简单for循环来实现这一点

 setwd("D:/TEST")
    ( p <- list.files(getwd(), pattern="pts$") )
      ptdf <- read.table(p[1], header=FALSE)
        names(ptdf) <- c("x","y","z") 
          for(i in 2:length(p)) {
            d <- read.table(p[i], header=FALSE)
              names(d) <- c("x","y","z") 
            ptdf <- rbind(ptdf, d) 
           }
       write.csv(ptdf, "FileName.csv", row.names=FALSE, quote=FALSE)
setwd(“D:/TEST”)

(p在for循环之后,我得到一个错误“match.names(clab,names(xi))中的错误:名称与以前的名称不匹配”还有一件事我想补充的是,我只想R查找所选的.pts文件。该文件在同一文件夹中的另一个CSV文件中提供。代码将如何受到影响?此错误是因为您文件中的名称不匹配。我更改了代码以解释此问题,但请注意,它不会检查您的名称是否在正确的文件夹中t顺序。也就是说,如果一个文件是x,y,z,下一个文件是y,x,z,那么您将得到一个未分配的列。您的第二个查询是一个不同的问题。这实际上非常简单,与指定p向量有关。只需读入文件并将所需的文件名分配给p。当我打开Filename.csv时,它显示inv在每行的开头和结尾加上逗号。如何从每行中去掉倒逗号?点数据不是csv(逗号分隔),而是空格分隔的,这是一个重要的细节需要忽略。您需要将提供的代码中的“read.csv”函数改为“scan”。请不要将论坛视为代码编写服务!
# Create a wildcard list of files in directory and then subset
p <- list.files(getwd(), pattern="pts$")
  ( p <- p[c(1,5,8)] )

# Read on disk file and create "p" vector
# File format is such (one record per line):
#   BP_005424.pts
#   BP_005701.pts
#   BP_005503.pts
p <- read.table("DataList.txt")
  ( p <- as.character(p[,1]) ) 
require(sp)
require(rgdal)

coordinates(ptdf) <- ~x+y
  writeOGR(ptdf, getwd(), "OutShape", driver="ESRI Shapefile")