楼主: Cnstopit
11379 5

[问答] 关于R读取并合并多个CSV数据表的问题 [推广有奖]

  • 4关注
  • 0粉丝

本科生

29%

还不是VIP/贵宾

-

威望
0
论坛币
2517 个
通用积分
0.7500
学术水平
0 点
热心指数
0 点
信用等级
0 点
经验
1820 点
帖子
77
精华
0
在线时间
81 小时
注册时间
2017-7-11
最后登录
2024-3-31

楼主
Cnstopit 发表于 2017-8-3 17:28:07 |AI写论文

+2 论坛币
k人 参与回答

经管之家送您一份

应届毕业生专属福利!

求职就业群
赵安豆老师微信:zhaoandou666

经管之家联合CDA

送您一个全额奖学金名额~ !

感谢您参与论坛问题回答

经管之家送您两个论坛币!

+2 论坛币
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列名和数据就不一致了(列名相对于数据整体向左串了一行。举例,第一列是序号,第二列是日期,列名“日期”会跑到第一列序号那组数据上面)。

二维码

扫码加我 拉你入群

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

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

关键词:数据表 dissertation warnings addition warning programming

stock.2.xlsx
下载链接: https://bbs.pinggu.org/a-2298839.html

277.32 KB

stock.1.xlsx

290.84 KB

沙发
jiangbeilu 学生认证  发表于 2017-8-3 21:44:51
你这个给的xlsx数据,另存为csv格式的数据并没有任何问题。
如果你要批量读取并合并,一定要保证格式一致。
至于人说的串列问题,在读取的时候,read.csv函数里有个参数row.names设置一下就可以了:
代码如下:
  1. write.csv(data.frame(A=1:5),"xx.csv")

  2. read.csv("xx.csv",row.names=1)
复制代码

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

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

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

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

您需要登录后才可以回帖 登录 | 我要注册

本版微信群
加好友,备注cda
拉您进交流群
GMT+8, 2025-12-31 05:55