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