R의 파일에 텍스트 줄 쓰기
R 스크립팅 언어에서 텍스트 줄을 작성하는 방법(예: 다음 두 줄)
Hello
World
이름이 "output.txt"인 파일로?
fileConn<-file("output.txt")
writeLines(c("Hello","World"), fileConn)
close(fileConn)
사실 당신은 그것을 할 수 있습니다.sink()
:
sink("outfile.txt")
cat("hello")
cat("\n")
cat("world")
sink()
따라서 다음을 수행합니다.
file.show("outfile.txt")
# hello
# world
나는 그것을 사용할 것입니다.cat()
다음 예와 같은 명령:
> cat("Hello",file="outfile.txt",sep="\n")
> cat("World",file="outfile.txt",append=TRUE)
그런 다음 R을 사용하여 에서 결과를 볼 수 있습니다.
> file.show("outfile.txt")
hello
world
간단한 것은 무엇입니까?writeLines()
?
txt <- "Hallo\nWorld"
writeLines(txt, "outfile.txt")
또는
txt <- c("Hallo", "World")
writeLines(txt, "outfile.txt")
제안합니다.
writeLines(c("Hello","World"), "output.txt")
현재 승인된 답변보다 짧고 직접적입니다.다음 작업을 수행할 필요가 없습니다.
fileConn<-file("output.txt")
# writeLines command using fileConn connection
close(fileConn)
다음에 대한 문서 때문입니다.writeLines()
다음과 같이 말합니다.
만약에
con
문자열입니다. 함수가 호출합니다.file
함수 호출 중에 열려 있는 파일 연결을 얻습니다.
# default settings for writeLines(): sep = "\n", useBytes = FALSE
# so: sep = "" would join all together e.g.
당신은 그것을 하나의 진술서로 할 수 있습니다.
cat("hello","world",file="output.txt",sep="\n",append=TRUE)
R의 파일에 텍스트 줄을 쓰는 짧은 방법은 이미 많은 답변에 나와 있듯이 cat 또는 writeLines를 사용하여 실현할 수 있습니다.가장 짧은 가능성 중 일부는 다음과 같습니다.
cat("Hello\nWorld", file="output.txt")
writeLines("Hello\nWorld", "output.txt")
"\n"이 마음에 들지 않는 경우 다음 스타일도 사용할 수 있습니다.
cat("Hello
World", file="output.txt")
writeLines("Hello
World", "output.txt")
하는 동안에writeLines
파일 끝에 새 줄을 추가합니다. 파일 끝에 해당되지 않습니다.cat
이 동작은 다음을 통해 조정할 수 있습니다.
writeLines("Hello\nWorld", "output.txt", sep="") #No newline at end of file
cat("Hello\nWorld\n", file="output.txt") #Newline at end of file
cat("Hello\nWorld", file="output.txt", sep="\n") #Newline at end of file
하지만 가장 큰 차이점은cat
R 객체를 사용합니다.writeLines
인수로서의 문자 벡터따라서 예를 들어 1:10이라는 숫자는 cat에서 그대로 사용할 수 있는 동안 writeLines에 캐스팅해야 합니다.
cat(1:10)
writeLines(as.character(1:10))
그리고.cat
많은 물체를 가져갈 수 있지만,writeLines
하나의 벡터만:
cat("Hello", "World", sep="\n")
writeLines(c("Hello", "World"))
기존 파일에 더 쉽게 추가할 수 있습니다.cat
.
cat("Hello\n", file="output.txt")
cat("World", file="output.txt", append=TRUE)
writeLines("Hello", "output.txt")
CON <- file("output.txt", "a")
writeLines("World", CON)
close(CON)
반면에writeLines
보다 빠름cat
.
bench::mark(check=FALSE,
writeLines(c("Hello", "World")),
cat("Hello", "World", sep="\n"),
writeLines(c("Hello", "World"), sep=" "),
cat(c("Hello", "World")),
cat("Hello", "World") )
# expression min median `itr/sec` mem_a…¹
# <bch:expr> <bch:tm> <bch:tm> <dbl> <bch:b>
#1 writeLines(c("Hello", "World")) 2.27µs 4.77µs 163878. 0B
#2 cat("Hello", "World", sep = "\n") 3.83µs 8.51µs 118708. 0B
#3 writeLines(c("Hello", "World"), sep = " ") 1.99µs 4.25µs 235944. 0B
#4 cat(c("Hello", "World")) 4.1µs 6.84µs 141797. 0B
#5 cat("Hello", "World") 3.46µs 7.06µs 129865. 0B
파이프와 함께 깔끔한 버전과write_lines()
독자로부터
library(tidyverse)
c('Hello', 'World') %>% write_lines( "output.txt")
간단한 것은 어떻습니까?write.table()
?
text = c("Hello", "World")
write.table(text, file = "output.txt", col.names = F, row.names = F, quote = F)
매개 변수col.names = FALSE
그리고.row.names = FALSE
txt의 행 및 열 이름과 매개 변수를 제외해야 합니다.quote = FALSE
txt의 각 줄의 시작과 끝에 있는 따옴표를 제외합니다.데이터를 다시 읽으려면 다음을 사용합니다.text = readLines("output.txt")
.
가능성을 정리하려면 다음을 사용할 수 있습니다.writeLines()
와 함께sink()
원하는 경우:
> sink("tempsink", type="output")
> writeLines("Hello\nWorld")
> sink()
> file.show("tempsink", delete.file=TRUE)
Hello
World
내가 보기에, 항상 가장 직관적으로 사용할 수 있는 것 같습니다.print()
하지만 그렇게 하면 출력이 원하는 것이 되지 않습니다.
...
> print("Hello\nWorld")
...
[1] "Hello\nWorld"
file <- file("test.txt")
writeLines(yourObject, file)
close(file)
참고:yourObject
문자열 형식이어야 합니다. 사용as.character()
필요한 경우 변환할 수 있습니다.
하지만 모든 저장 시도에는 너무 많은 타이핑이 필요합니다.RStudio에서 스니펫을 만들어 보겠습니다.
글로벌 옵션 >> 코드 >> 스니펫에서 다음을 입력합니다.
snippet wfile
file <- file(${1:filename})
writeLines(${2:yourObject}, file)
close(file)
그런 다음 코딩 중에 를 입력하고 를 누릅니다.
추한 시스템 옵션
ptf <- function (txtToPrint,outFile){system(paste(paste(paste("echo '",cat(txtToPrint),sep = "",collapse = NULL),"'>",sep = "",collapse = NULL),outFile))}
#Prints txtToPrint to outFile in cwd. #!/bin/bash echo txtToPrint > outFile
에서는 R의▁in는writeLines
텍트에반공보백존포로필없함요습다가니할므되스이과환값▁in▁will없다,▁don▁returnst▁preserve▁need▁and'를 포함할 필요가 없습니다.\n
줄의 끝에 하나의 큰 텍스트 덩어리를 파일에 쓸 수 있습니다.이는 예제와 함께 작동합니다.
txt <- "Hello
World"
fileConn<-file("output.txt")
writeLines(txt, fileConn)
close(fileConn)
그러나 이 설정을 사용하여 구조(줄 바꿈 또는 들여쓰기)가 있는 텍스트를 간단히 포함할 수도 있습니다.
txt <- "Hello
world
I can
indent text!"
fileConn<-file("output.txt")
writeLines(txt, fileConn)
close(fileConn)
언급URL : https://stackoverflow.com/questions/2470248/write-lines-of-text-to-a-file-in-r
'programing' 카테고리의 다른 글
인터op dll이란 무엇입니까? (0) | 2023.07.01 |
---|---|
UIT 텍스트 보기를 반올림된 직사각형 텍스트 필드처럼 스타일을 지정하는 방법은 무엇입니까? (0) | 2023.07.01 |
Spring Boot 앱을 통해 mongodb에 액세스할 때 인증 오류 발생 (0) | 2023.07.01 |
MongoDB는 어떻게든 단일 코어로 제한되어 있습니까? (0) | 2023.07.01 |
유형 스크립트 모듈 내에서 전역 유형(예: "창") 확장 (0) | 2023.07.01 |