변수에 스칼라 값을 넣으려면 <- 기호를 쓴다.
> a<-1
> a
[1] 1
변수에 벡터 값을 넣으려면 <-에 c() 함수를 쓴다.
> a<-c(1,2,3)
> a
[1] 1 2 3
변수에 매트릭스를 넣으려면 matrix() 함수를 쓴다. 인자로, 벡터값과 nrow, ncol을 넣는다.
> a<-matrix(c(10,20,30,40,50,60),2,3)
> a
[,1] [,2] [,3]
[1,] 10 30 50
[2,] 20 40 60
위 예제를 보면 벡터 값이 앞열부터 순서대로 채워지는데, 첫행부터 채워지게 만들려면 byrow 옵션을 쓴다.
> a<-matrix(c(10,20,30,40,50,60),2,3,byrow=T)
> a
[,1] [,2] [,3]
[1,] 10 20 30
[2,] 40 50 60
매트릭스의 행과 열을 바꾸고 싶으면, 즉 transpose하고 싶으면 t() 함수를 쓴다.
> b<-t(a)
> b
[,1] [,2]
[1,] 10 40
[2,] 20 50
[3,] 30 60
매트릭스의 각 열을 변수로 한 데이터셋을 만들고 싶으면 data.frame() 함수를 쓴다. 변수 이름은 자동으로 X1, X2가 붙는다.
> c<-data.frame(b)
> c
X1 X2
1 10 40
2 20 50
3 30 60
매트릭스가 아닌 벡터를 모아서 데이터셋을 만들 수도 있다. 각각의 벡터는 변수 이름을 가지고 있기 때문에 매트릭스 때와 달리 벡터 이름이 변수 이름이 된다.
> a<-c(1,2,3,4,5,6)
> b<-c(10,12,13,15,17,18)
> c<-data.frame(a,b)
> c
a b
1 1 10
2 2 12
3 3 13
4 4 15
5 5 17
6 6 18
data.frame()안에 인자로 들어갈 벡터는 몇개라도 상관없다.
일반적인 경우에 데이터셋을 콘솔 화면에서 타이핑해서 만드는 경우는 거의 없고, 파일을 불러들여서 만든다. 제일 많이 쓰는 데이터파일 포맷은 csv (comma-separated values)인데 R에서 csv 파일을 부를 땐 read.csv() 함수를 쓴다.
> data<-read.csv("testdata1.csv")
> data
year gdp
1 1960 3.957874e+09
2 1961 2.417238e+09
3 1962 2.813934e+09
...
파일 첫 줄에 변수 이름이 있고, 다른 설명이나 캡션이 없는 깔끔한 csv 파일인 경우, 별도의 옵션 설정 없이 변수 이름과 값을 불러들인다. 저장할 땐 write.csv() 함수를 쓴다. 데이터 이름과 파일 이름을 명시해야 한다.
> write.csv(data,file="testdata2.csv")
csv 외에 R에서 제공하는 데이터 포맷도 있다. RData라는 확장자를 쓰는데 RData 파일로 저장하려면 save() 함수를 쓴다.
> save(data,file="test.RData")
RData 파일을 부를 땐 load() 함수를 쓴다.
> load("test.RData")
R에서 변수를 사용할 때는 변수 이름만 쓰면 안되고 데이터셋 이름까지 써 줘야 한다. 데이터셋$변수명 이런식으로 쓴다.
> data$year
[1] 1960 1961 1962 1963 1964 1965 1966 1967 1968 1969 1970 1971 1972 1973 1974
[16] 1975 1976 1977 1978 1979 1980 1981 1982 1983 1984 1985 1986 1987 1988 1989
[31] 1990 1991 1992 1993 1994 1995 1996 1997 1998 1999 2000 2001 2002 2003 2004
[46] 2005 2006 2007 2008 2009 2010 2011 2012 2013 2014 2015 2016
'R' 카테고리의 다른 글
R 시계열 데이터 변환 aggregate() (0) | 2018.03.22 |
---|---|
R 데이터 변형하기 - subset(), which() (0) | 2018.03.19 |
R 막대그래프 barplot(), ggplot() (0) | 2018.03.09 |
R에서 오늘 날짜 또는 지금 시간 알기 Sys.Date(), Sys.time() (0) | 2018.03.07 |
R에서 시간 처리하기 strptime() (0) | 2018.03.06 |