Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/r/74.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
将多个csv文件(类似列)合并为一个,并在r中选择行和列_R_Loops_Csv - Fatal编程技术网

将多个csv文件(类似列)合并为一个,并在r中选择行和列

将多个csv文件(类似列)合并为一个,并在r中选择行和列,r,loops,csv,R,Loops,Csv,我有大约300-500个CSV文件,开头有一些字符信息,两列是数字数据。我想制作一个data.frame,其中包含所有数值,这样我就有一次X列和多个Y列,而没有字符行 **File1** has two-column and more than a thousand rows: an example looks like info info info info info info X Y 1 50.3 2 56.2 3 96.5 4

我有大约300-500个CSV文件,开头有一些字符信息,两列是数字数据。我想制作一个data.frame,其中包含所有数值,这样我就有一次X列和多个Y列,而没有字符行

**File1** has two-column and more than a thousand rows: an example looks like 

info   info
info   info
info   info
X      Y
1      50.3
2      56.2
3      96.5
4      56.4
5      65.2
info   0

**File2**
info   info
info   info
info   info
X      Y
1      46.3
2      65.2
3      21.6
4      98.2
5      25.3
info   0

Only Y values are changing from file to file, I want to add all the files in one file with selective rows and make a data frame. Such as I want as a data frame.

X      Y1      Y2
1      46.3   50.3
2      65.2   56.2
3      21.6   96.5
4      98.2   56.4
5      25.3   65.2

I tried
files <- list.files(pattern="*.csv")
l <- list()
for (i in 1:length(files)){
 l[[i]] <- read.csv(files[i], skip = 3)
 }
data.frame(l)


This gives me

X1      Y1   X2    Y2
1      46.3  1    50.3
2      65.2  2    56.2
3      21.6  3    96.5
4      98.2  4    56.4
5      25.3  5    65.2
info   0     info 0
**File1**有两列和一千多行:示例如下
信息
信息
信息
xy
1      50.3
2      56.2
3      96.5
4      56.4
5      65.2
信息0
**文件2**
信息
信息
信息
xy
1      46.3
2      65.2
3      21.6
4      98.2
5      25.3
信息0
只有Y值在不同的文件之间变化,我想将所有文件添加到一个文件中,并选择行,形成一个数据框。比如我想要的数据帧。
X Y1 Y2
1      46.3   50.3
2      65.2   56.2
3      21.6   96.5
4      98.2   56.4
5      25.3   65.2
我试过了

文件定义一个函数
Read
,该函数读取一个文件,删除所有不以数字开头的行。我们使用
sep=“,”
指定每个文件中的字段以逗号分隔。然后使用
Read
Read.zoo
读取并合并提供zoo对象
z
的文件。最后,将其用作zoo对象或将其转换为数据帧,如图所示

library(zoo)

Read <- function(f) {
  read.table(text = grep("^\\d", readLines(f), value = TRUE), sep = ".")
}
z <- read.zoo(Sys.glob("*.csv"), read = Read)
DF <- fortify.zoo(z)
图书馆(动物园)

阅读感谢你的回答。我有X和Y作为列标题,不是数字。对,但你不需要它们。不管怎样,他们都是一样的。显示的代码将按文件名标记每列。