使用readxl和正确的变量类型将多个excel电子表格读入R中
我有几个excel文件,我试图用readxl
包读入R中。 excel文件包含多个标签,每个标签有60000行,有四列变量。 第一列是一个简单的整数计数从0,1,2,等等跟踪秒第二列是冒号隔开( :
MM::)在HH时间SS。 第三列是以MM / DD / YYYY分隔的正斜杠( /
)日期。 第四列是浮点小数(例如338.6)。
使用下面的代码我得到了四列,一些格式是一致的,但有些数据似乎被误解为日期或小数而不是整数,时间或日期。
> data1 <- lapply(excel_sheets("./file_name.xls"),
read_excel, path = "./file_name.xls",
col_names = FALSE)
> head(data1[[1]])
X1 X2 X3 X4
1 502342 02:12:50 02/04/2015 338.6
2 502341 02:12:49 02/04/2015 338.1
3 502340 02:12:48 02/04/2015 337.5
4 502339 02:12:47 02/04/2015 337.6
5 502338 02:12:46 02/04/2015 337.5
6 502337 02:12:45 02/04/2015 338.0
> head(data1[[2]])
X1 X2 X3 X4
1 483664 08:56:48 488774 08:52:22
2 08:49:32 08:56:47 488774 08:52:22
3 185.2 08:56:46 488774 485475
4 483663 08:56:45 488774 08:52:22
5 08:49:31 08:56:44 488774 08:52:22
6 483662 08:56:43 488774 485475
> class(data1[[2]]$X1)
[1] "character"
> mode(data1[[2]]$X1)
[1] "character"
> tail(data1[[1]])
X1 X2 X3 X4
59995 08:49:35 08:56:54 488774 08:52:22
59996 483666 08:56:53 488774 485475
59997 08:49:34 08:56:52 488774 08:51:50
59998 185.3 08:56:51 488774 08:51:50
59999 483665 08:56:50 488774 485475
60000 08:49:33 08:56:49 488774 485475
> tail(data1[[2]])
X1 X2 X3 X4
59995 09:29:17 497592 488774 488206
59996 485927 497591 488774 488206
59997 09:29:16 497590 488774 488206
59998 485926 363.0 488774 488206
59999 09:29:15 12:49:37 488774 488206
60000 485925 497588 488774 488206
我也尝试使用col_types
来定义列类型,但是这会返回一个充满NA的数据框。
> data1 <- lapply(excel_sheets("./file_name.xls"),
read_excel, path = "./file_name.xls",
col_names = FALSE,
col_types = c("numeric", "numeric", "date","numeric"))
There were 50 or more warnings (use warnings() to see the first 50)
> head(data1[[1]])
X1 X2 X3 X4
1 NA NA <NA> NA
2 NA NA <NA> NA
3 NA NA <NA> NA
4 NA NA <NA> NA
5 NA NA <NA> NA
6 NA NA <NA> NA
使用lapply()
和read_excel()
返回一个数据框的列表。 我不确定是否应该尝试更改变量类型或如何完成此操作。 excel文件本身在变量类型方面看起来一致。 我甚至在data1[[2]]
检查了59998行,它显示了X2的363.0,但它应该是03:42:51。
我应该尝试在Excel中格式化这些数据还是尝试在R中更改它? 目前的一切似乎都是阶级性格。 什么是改变R中变量类型的最有效方法?
谢谢你的帮助。
链接地址: http://www.djcxy.com/p/38321.html上一篇: Read multiple excel spreadsheets into R using readxl and correct variable types