텍스트 파일을 단일 문자열로 가져오기
R에서 일반 텍스트 파일을 단일 문자열로 가져오려면 어떻게 해야 합니까?제 생각에 이것은 매우 간단한 답이 될 것 같습니다만, 제가 오늘 이것을 시도해 보니 이것을 할 수 있는 기능을 찾을 수 없었습니다.
예를 들어 파일이 있다고 가정합니다.foo.txt
문자 메시지를 보내고 싶은 것과 함께.
사용해 보았습니다.
scan("foo.txt", what="character", sep=NULL)
하지만 이것은 여전히 벡터를 반환했습니다.다음과 같은 기능을 어느 정도 사용할 수 있습니다.
paste(scan("foo.txt", what="character", sep=" "),collapse=" ")
하지만 그것은 아마도 불안정한 꽤 추악한 해결책일 것입니다.
다음은 하드 코딩된 크기 대신 올바른 크기를 사용하는 @JoshuaUlrich의 다양한 솔루션입니다.
fileName <- 'foo.txt'
readChar(fileName, file.info(fileName)$size)
readChar는 지정한 바이트 수에 공간을 할당합니다.readChar(fileName, .Machine$integer.max)
잘 작동하지 않습니다...
3년 후에도 이 질문을 보는 사람이 있을 경우 해들리 위컴의 독자 패키지는 유용한 정보를 가지고 있습니다.read_file()
당신을 위해 이것을 해줄 기능.
# you only need to do this one time on your system
install.packages("readr")
library(readr)
mystring <- read_file("path/to/myfile.txt")
저는 다음을 사용합니다.그것은 잘 작동할 것이고 적어도 나에게는 추하게 보이지 않을 것입니다.
singleString <- paste(readLines("foo.txt"), collapse=" ")
어때요?
string <- readChar("foo.txt",nchars=1e6)
리더 패키지는 당신을 위해 모든 것을 해주는 기능이 있습니다.
install.packages("readr") # you only need to do this one time on your system
library(readr)
mystring <- read_file("path/to/myfile.txt")
이렇게 하면 패키지 문자열의 버전이 바뀝니다.
Sharon의 솔루션이 더 이상 사용될 수 없다는 것은 유감입니다.저는 조쉬 오브라이언의 솔루션을 시에이라의 수정과 함께 추가했습니다.Rprofile 파일:
read.text = function(pathname)
{
return (paste(readLines(pathname), collapse="\n"))
}
다음과 같이 사용합니다.txt = read.text('path/to/my/file.txt')
저는 범킨의 발견을 복제할 수 없었습니다. (14년 10월 14일.writeLines(txt)
의 내용을 보여주었습니다.file.txt
또한, 그 후에write(txt, '/tmp/out')
사령부diff /tmp/out path/to/my/file.txt
차이가 없는 것으로 보고되었습니다.
readChar는 유연성이 별로 없어서 당신의 솔루션을 결합했습니다(readLines and paste).
각 줄 사이에 공백도 추가했습니다.
con <- file("/Users/YourtextFile.txt", "r", blocking = FALSE)
singleString <- readLines(con) # empty
singleString <- paste(singleString, sep = " ", collapse = " ")
close(con)
당신의 해결책은 별로 나쁘지 않은 것 같습니다.이런 식으로 기능을 사용해서 전문적으로 만들 수 있습니다.
- 첫 번째 방법
new.function <- function(filename){
readChar(filename, file.info(filename)$size)
}
new.function('foo.txt')
- 제2의 방법
new.function <- function(){
filename <- 'foo.txt'
return (readChar(filename, file.info(filename)$size))
}
new.function()
언급URL : https://stackoverflow.com/questions/9068397/import-text-file-as-single-character-string
'programing' 카테고리의 다른 글
일부 파일의 변경 내용을 실행 취소 (0) | 2023.06.26 |
---|---|
mongoDB 설치(하위 프로세스 실패, 오류 번호 100으로 종료) (0) | 2023.06.26 |
"일시 중단됨" 상태와 디스크 높음 상태는 무엇입니까?IO는 sp_who2에서 온 것입니까? (0) | 2023.06.26 |
iOS에서 인터넷 연결을 감지하는 가장 쉬운 방법은 무엇입니까? (0) | 2023.06.26 |
Node.js MSSQL tedius 연결 오류: localhost: 1433에 연결하지 못했습니다. - connect ECONFUSED (0) | 2023.06.26 |