.csv 파일을 R로 읽으려고 할 때 'Incomplete final line' 경고
.csv 파일을 R로 읽고 다음 공식을 사용하려고 합니다.
pheasant<-read.table(file.choose(),header=TRUE,sep=",")
다음 경고 메시지가 표시됩니다.
"incomplete final line found by readTableHeader on 'C:\Documents and Settings..."
제가 이 경고를 발생시켰다고 생각한 것이 몇 가지 있습니다. 하지만 불행히도 저는 R에 대해 스스로 문제를 진단할 만큼 충분히 알지 못하기 때문에 다른 사람이 저를 위해 진단할 수 있기를 바라며 여기에 글을 올리려고 합니다!
- .csv 파일은 원래 Excel 파일이었고, 제가 .csv 형식으로 저장했습니다.
- 파일은 세 개의 데이터 열로 구성됩니다.
- 각 데이터 열의 길이가 다릅니다. 즉, 각 열에 서로 다른 수의 값이 있습니다.
- 한 번에 두 열의 평균(정규 분포에 따라 t-검정 또는 동등한 값을 사용하여)을 비교하려고 합니다. 예를 들어, 열 1 값과 열 2 값 사이의 t-검정, 열 1 및 열 3 값의 t-검정 등입니다.
어떠한 도움이나 제안도 진심으로 감사드립니다!
Of Line) 라인피드) 문자)로 .\n
리턴는 () 입니다.\r\n
이할 수 입니다. 의 맨 .) 이 메시지의 원래 목적은 파일이 불완전할 수 있음을 경고하는 것입니다. 대부분의 데이터 파일에는 파일의 맨 마지막 문자로 EOL 문자가 있습니다.
치료법은 간단합니다.
- 파일 열기
- 파일의 맨 마지막 줄로 이동합니다.
- 커서를 해당 줄의 끝에 놓습니다.
- 프레스
- 파일 저장
마지막 줄이 비어 있어야 하기 때문에 문제를 쉽게 해결할 수 있습니다.
예를 들어, 당신의 콘텐츠가
line 1,
line2
로 변경합니다.
line 1,
line2
(empty line here)
오늘 아래 명령을 사용하여 R을 사용하여 JSON 파일을 읽으려고 할 때 다음과 같은 문제가 발생했습니다.
json_data<-fromJSON(paste(readLines("json01.json"), collapse=""))
그리고 위의 방법으로 해결합니다.
.xls 파일이 아닌 .csv 파일을 선택한 것이 확실합니까?.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라고 생각할 수 있습니다.
해야 할 다른 에서 파일을 이 내 입니다.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
Excel에서 저장한 csv 형식은 쉼표로 모든 셀을 구분합니다.빈 셀은 값이 없습니다. read.table()
이 문제를 쉽게 처리할 수 있고 빈 셀을 잘 인식합니다.
사용하다readLines()
(와 함께)warn = FALSE
파일을 먼저 문자 벡터로 읽습니다.
그 후에는 다음을 사용합니다.text =
으로 들이는 합니다.read.table()
pheasant <- read.table(
text = readLines(file.choose(), warn = FALSE),
header = TRUE,
sep = ","
)
저는 몇 가지 답변이 제공되었지만 아직 확실한 해결책은 없다는 것을 깨달았습니다.
위에서 언급한 것처럼 CSV 파일의 끝에 "End of line"이 없기 때문입니다.
실제 수정은 Microsoft에서 제공해야 하지만 해결 방법은 텍스트 편집기를 사용하여 CSV 파일을 열고 파일 끝에 줄을 추가하는 것입니다(일명 키 누르기).저는 ATOM 소프트웨어를 텍스트/코드 편집기로 사용하지만 사실상 모든 기본 텍스트 편집기로 사용할 수 있습니다.
그 동안 마이크로소프트에 버그를 보고해주시기 바랍니다.
질문:.제가 보기에는 사무실 2016 문제인 것 같습니다.PC에 문제가 있는 사람이 있습니까?
read.table 인수의 인코딩을 fileEncoding = "UTF-16"에서 fileEncoding = "UTF-8"로 변경하여 이 문제를 해결했습니다.
저도 같은 메시지를 받았습니다.나의 해결책은 다음과 같습니다..csv 파일의 모든 추가 시트(탭)를 삭제하고, 숫자가 아닌 문자를 제거하고, 쉼표로 구분하여 파일을 다시 저장하고 표준 언어를 사용하여 Rv 2.15.0으로 로드했습니다.
filename<-read.csv("파일 이름", 헤더=TRUE)
추가적인 보호책으로, 나는 csv를 로드하기 전에 소프트웨어를 닫았다가 다시 열었습니다.
다양한 유럽 로케일에서는 쉼표 문자가 소수점 역할을 하므로 read.csv2 함수를 대신 사용해야 합니다.
제가 헤더의 일부로 인용문 하나를 가지고 있을 때 이 문제가 발생한 적이 있습니다.했을 때 ( 해당 열 헤더의 이름을 제을때즉했(거, 각헤이름변을경의더)에서 변경Jimmy's data
로.Jimmys data
), 함수에서 경고를 반환하지 않았습니다.
저 같은 경우에는 말 그대로 마지막 줄이었습니다.CSV 파일 하단에 문자 그대로 빈 행을 추가하여 문제를 해결했습니다.
부터
cola,colb,colc
1,2,3
4,5,6
7,8,9
안으로
cola,colb,colc
1,2,3
4,5,6
7,8,9
맨 마지막 줄에 있는 여분의 공간을 자세히 보세요.빈 줄만 추가하면 문제가 해결됩니다.
메모
R의 CSV 파서는 새 줄 구분 기호로 가장 마지막 줄 문자를 찾고 있는 것 같습니다.이것은 프로그래머들에게 더 잘 알려져 있습니다.\r\n
또는\r
성격.
당신이 설명하는 문제는 제가 이름을 변경했을 때 발생했습니다..xlsx
~하듯이.csv
.
저를 위해 그것을 고친 것은 "다른 이름으로 저장"을 한 다음 그것을 저장하는 것이었습니다..csv
다시.
R 자체를 통해 이 문제를 해결하기 위해 사용했습니다.read.xlsx(..)
대신에read.csv()
매력적으로 작동합니다!!이름을 바꿀 필요도 없습니다.xlsx의 이름을 csv로 바꾸는 것은 실행 가능한 솔루션이 아닙니다.
텍스트 랭글러 또는 메모장 ++에서 파일을 열고 보이지 않는 텍스트 랭글러에서 형식을 표시합니다.그러면 새 줄 또는 탭 문자를 볼 수 있습니다. 종종 Excel은 마지막 줄 문자가 아닌 잘못된 위치에 모든 종류의 탭을 추가하지만 이를 보려면 기호를 표시해야 합니다.
제가 한 일은 제가 문을 연 것입니다.csv
텍스트 편집기에서 파일을 선택하고 마지막 값에 있는 과도한 쉼표를 제거한 다음 파일을 저장합니다.예를 들어 다음 파일의 경우
Test1,Test2,Test3
1,1,1
2,2,2
3,3,3
4,4,
5,5,
,6,,
6시 이후에 쉼표를 제거한 다음 파일을 저장합니다.
유사한 문제를 경험했지만 일반적인 경고로 나타나고 실제로는 줄 바꿈 문자와 관련이 없을 수 있습니다.제 경우는 제가 사용하던 파일에 키릴 문자가 포함되어 있었기 때문에 이 오류가 발생했습니다. 일단 라틴 문자로 교체하면 오류가 사라졌습니다.
텍스트 편집기를 사용하여 새 줄을 삽입하고 위의 상단 답변에서 권장하는 줄 끝 문자를 얻는 등 다양한 해결책을 시도했습니다.불행히도, 이것들 중 어느 것도 작동하지 않았습니다.
결국 저에게 효과가 있었던 솔루션은 매우 간단했습니다.CSV 파일의 내용을 새 빈 CSV 파일에 복사하여 붙여 저장했더니 문제가 사라졌습니다.
파일을 읽기 전에 파일을 열지 않아도 되는 매우 간단한 해결 방법이 있습니다.
cat("\n", file = "your/File/Dir", append = TRUE)
여기서 이 솔루션을 찾았습니다.
언급URL : https://stackoverflow.com/questions/5990654/incomplete-final-line-warning-when-trying-to-read-a-csv-file-into-r
'programing' 카테고리의 다른 글
SQL # 기호는 무엇을 의미하며 어떻게 사용됩니까? (0) | 2023.06.27 |
---|---|
오류를 제거하는 방법: "OverwriteModelError: '정의되지 않은' 모델을 컴파일한 후에는 덮어쓸 수 없습니다."? (0) | 2023.06.27 |
Vuex 및 Firebase를 사용하여 항목 편집 (0) | 2023.06.27 |
SQL Server 2005의 기존 열 뒤에 새 열을 추가하기 위한 SQL 쿼리 (0) | 2023.06.27 |
다른 위치에 있는 디렉토리에서 특정 Laravel 5 경로에 액세스 (0) | 2023.06.27 |