Вы действительно уверены, что выбрали файл .csv, а не файл .xls? Я могу воспроизвести ошибку, только если я попытаюсь прочитать в файле .xls. Если я попытаюсь прочитать файл .csv или любой другой текстовый файл, я не смогу воссоздать полученную ошибку.
> Data <- read.table("test.csv",header=T,sep=",")
> Data <- read.table("test.xlsx",header=T,sep=",")
Warning message:
In read.table("test.xlsx", header = T, sep = ",") :
incomplete final line found by readTableHeader on 'test.xlsx'
readTableHead
- это функция c, которая выдает ошибку. Он пытается прочитать первые n строк (стандартные первые 5), чтобы определить тип данных. Остальные данные читаются с использованием scan()
. Так что проблема в формате файла.
Один из способов выяснить это - установить рабочий каталог в каталог, где находится файл. Таким образом, вы видите расширение файла, в котором вы читаете. Я знаю, что в Windows он не показан стандартным, так что вы можете поверить, что это CSV, а это не так.
Следующее, что вам нужно сделать, это открыть файл в Блокноте или Wordpad (или другом редакторе) и проверить, что формат соответствует моему файлу test.csv
:
Test1,Test2,Test3
1,1,1
2,2,2
3,3,3
4,4,
5,5,
,6,
Этот файл предоставит вам следующий фрейм данных:
> read.table(testfile,header=T,sep=",")
Test1 Test2 Test3
1 1 1 1
2 2 2 2
3 3 3 3
4 4 4 NA
5 5 5 NA
6 NA 6 NA
Формат CSV, сохраненный в Excel, разделяет все ячейки запятой. Пустые ячейки просто не имеют значения. read.table()
может легко справиться с этим, и прекрасно распознает пустые ячейки.