全部版块 我的主页
论坛 数据科学与人工智能 数据分析与数据科学 R语言论坛
11334 5
2017-08-03
setwd("E:/CDS dissertation/cds initial")   # /stock 7             #设定工作目录为D盘
a = list.files("stock 7")            #list.files命令将input文件夹下所有文件名输入a
dir = paste("./stock 7/",a,sep="")      #用paste命令构建路径变量dir
n = length(dir)        #读取dir长度,也就是文件夹下的文件个数
merge.data = read.csv(file = dir[1],header=T,sep=",")   #读入第一个文件内容
for (i in 2:n){
  new.data = read.csv(file = dir, header=T, sep=",")
  merge.data = rbind(merge.data,new.data)
}
Error in rbind(deparse.level, ...) : 变量的列数不对
In addition: There were 50 or more warnings (use warnings() to see the first 50)


请教大神应该怎么办
数据贴上了。
这两个表格本来CSV格式,在EXCEL里面打开一样的。但是CSV格式下,用R打开就不同了。stock 1 是正常的,stock 2列名和数据就不一致了(列名相对于数据整体向左串了一行。举例,第一列是序号,第二列是日期,列名“日期”会跑到第一列序号那组数据上面)。

附件列表

stock.2.xlsx

大小:277.32 KB

 马上下载

stock.1.xlsx

大小:290.84 KB

 马上下载

二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

全部回复
2017-8-3 21:44:51
你这个给的xlsx数据,另存为csv格式的数据并没有任何问题。
如果你要批量读取并合并,一定要保证格式一致。
至于人说的串列问题,在读取的时候,read.csv函数里有个参数row.names设置一下就可以了:
代码如下:
复制代码
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

2017-8-3 22:23:21
jiangbeilu 发表于 2017-8-3 21:44
你这个给的xlsx数据,另存为csv格式的数据并没有任何问题。
如果你要批量读取并合并,一定要保证格式一致。 ...
感谢回复,我最后通过if循环把有问题的数据的列名重新赋值了,方法笨了点,不过算是解决了
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

2017-8-4 09:28:18
Cnstopit 发表于 2017-8-3 17:28
setwd("E:/CDS dissertation/cds initial")   # /stock 7             #设定工作目录为D盘
a = list.files ...
我是先读取数据,跳过标题行,然后合并,再添加列名。
方法是不是啰嗦了点
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

2017-8-4 11:00:50
BG4IMP 发表于 2017-8-4 09:28
我是先读取数据,跳过标题行,然后合并,再添加列名。
方法是不是啰嗦了点
我觉得方法啰嗦不要紧的,重要的是把问题解决了。但是我这个数据因为串行了,如果先忽略标题读取数据的话,数据就可能会串吧。 比如我正常的表data(列名为v2,在header=F的情况下) 数据是日期,但是第二张有问题的表,V2对应的那列就不会是日期了。然后rbind 就会把V2都合并,但是实际数据类型并不一致,V2可能就是日期+序列号的一组数据。
不过还是感谢你提出来的思路!
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

2017-8-7 22:09:12
嗯,有时候我也是先读取文件,最后加列名。这样的好处是几个表格的数据能快速合并,效率高
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

相关推荐
栏目导航
热门文章
推荐文章

分享

扫码加好友,拉您进群
各岗位、行业、专业交流群