R studios

R 통계 : Theme #2. 데이터 저장 및 불러오기

Frisbeen 2024. 5. 27. 16:58

cf) 데이터가 상당히 많은 복잡한 경우 ( 반복문 활용)

파일목록이 seoul_201512, seoul_201606.xlsx일때 이걸 한번에 합쳐서 Read해보자

files = c(”201512”,”201606” , …..) 

columns =c(”상가업소번호”,”상호명”) >> 이건 내가 원하는 열들만 모아놓은거야.

ds.total = null // 이게 내가 만들 df라고 할때

for(i in length(files)){
	filename = paste("seoul_",files[i],".xlsx",sep="")
	ds = read_excel(filename)
	ds= data.frame(ds)
	ds= ds[,columns] >> 내가 원하는 열만 ds에다가 가져와주기 위해
	ds.total= rbind(ds.total,ds)
	

  1. 저장하기
## 일반 data 저장하기
fruit 이라는 Data frame 이 있다고 가정하자.
나의 Work directory에
save(fruit, file ="test.dat") 라고 하면 알아서 저장된다.

## 다시 불러올때는 
load("test.dat")

##엑셀 파일 저장하고 읽기
score = read.csv("score.csv")
fruit 이라는 data frame이 있다고 가정할때, 
Write.csv(fruit,"fruit.csv")

## 텍스트파일 저장하고 읽기
working directory에 있어야함
#읽기
b = scan("birth.txt", what ="")
c= read.table("birth.txt", header = T)

#저장하기
mat이라는 행렬이 있다고 가정
save(mat , file ="Testmat.txt")

  1. 엑셀 입출력 시 유의점

#1. factor로 나왔을 경우

내가 엑셀 파일을 받아 그걸 내가 str(x) 하였을때 결과물이 아래처럼 factor가 나온다면 안됀다. 따라서

x

id 1 2 3 <int>

name Kim lee park <factor>

x = read.csv(”a.csv”,stringAsFactors= FALSE) 

#2. header가 존재하지 않을 경우 ( 열의 이름이 없다면)

즉 열의 이름이 없이 이상하게 나왔다면

names(x) = c("id","name","score") 처럼 이름함수를 만들어줘라.
  1. nil값이 저장된 경우 (이상한값)

이상한 값이 저정되면 nil 이 아닌 na값으로 바꿔줘야한다.

x= read.csv("score.csv",na.strings=c("nil"))

  1. url 불러오기

예를들어 url 이름이 https:af/asdf?/asdfa//asdf/ 이런거라 치면

url =" https;/sdfasdfas/fd/"
df = read.csv(url) 
  1. 객체 파일 입출력- 데이터를 저장하여 나중에 불러올수 있다!
x = 1:5
y= 6:10
save(x,y, file ="xy.RData)
//없애버려
x > error

load("xy.RData")
x,y > 다시 잘 생김