반응형

안녕하세요

오늘은 R을 사용하면서 자주 하는 실수 15개를 모아봤습니다.

 

1. 변수 선언 오류

R에서는 변수를 선언할 때 <-를 사용합니다. 만약 =를 사용할 경우 오류가 발생합니다.

 

x = 5
y = 10
z = x + y #Error: object 'x' not found
x <- 5
y <- 10
z <- x + y

 

2.데이터 타입 오류

R에서는 데이터 타입을 확인하기 전에 연산을 수행할 수 있습니다. 이러한 오류를 피하려면 데이터 타입을 확인하고 연산을 수행해야 합니다.

 

x <- "5"
y <- 10
z <- x + y #Error: non-numeric argument to binary operator
x <- as.numeric("5")
y <- 10
z <- x + y



3. 데이터 프레임 인덱싱 오류

데이터 프레임을 인덱싱 할 때 사용하는 구문을 잘못 사용할 경우 발생하는 오류입니다.

데이터 프레임은 행과 열로 구성되어 있습니다. 행은 row, 열은 column 을 인덱싱하여 선택할 수 있습니다

 

x <- data.frame(a = c(1, 2, 3), b = c(4, 5, 6))
x[,c("a","b")] #Error in x[, c("a", "b")] : incorrect number of dimensions

위 코드에서, x[,c("a","b")]는 열을 인덱싱 하는 구문이지만 여러개의 열을 선택하려고 하여 오류가 발생합니다. 이때 사용하는 것은 drop = F 인덱싱 구문으로 해결 가능합니다.

x[,c("a","b"), drop = F]

여기서, drop = F 를 사용하면 열을 인덱싱 할때 여러개를 선택 할 수 있다는 것을 의미합니다.

 

 

4. 함수 이름 오류

R에서는 함수 이름을 대소문자를 구분합니다. 함수 이름을 잘못 입력할 경우 오류가 발생합니다.

 

data <- read.csv("data.csv") #Error: could not find function "read.csv"
data <- read.csv("data.csv")

 

5. 경로 문제

R에서 파일을 읽거나 쓸 때 경로를 잘못 지정할 경우 오류가 발생합니다.

data <- read.csv("C:/Data/data.csv") #Error: 'file' does not exist in 'C:/Data/data.csv'
data <- read.csv("C:/Data/data.csv")

 

6. 인덱싱 오류

R에서는 1부터 시작하므로 인덱싱을 할 때 주의해야 합니다.

x <- c(1, 2, 3)
x[0] #Error: subscript out of bounds
x <- c(1, 2, 3)
x[1]

 

 

7. 누락 데이터 처리 오류

데이터에 누락 값이 있을 경우 이를 처리하지 않으면 오류가 발생합니다.

mean(c(1, 2, NA)) #Error: 'na.rm' is missing, with no default
mean(c(1, 2, NA), na.rm = TRUE)

 

8. 데이터 입출력 오류

read.table() 같은 함수들을 사용할때 파일이나 url을 잘못입력하는 경우 발생하는 오류입니다.
R에서는 read.csv(), read.table() 과 같은 함수를 사용하여 데이터를 읽어들일 수 있습니다. 하지만 파일 경로를 잘못 입력할 경우 오류가 발생할 수 있습니다.

예를 들어,

data <- read.csv("C:\mydata\data.csv") #Error in file(file, "rt") : cannot open the connection

위 코드는 파일 경로를 잘못 입력하여 오류가 발생합니다.

이때, 파일 경로를 정확히 입력하면 오류를 피할수 있습니다.

data <- read.csv("C:/mydata/data.csv") # correct way

위와 같이, 파일 경로를 정확히 입력하면 오류를 피할 수 있습니다.

또한, 읽어들일 파일이 존재하지 않는 경우도 오류가 발생할 수 있으니 파일이 존재하는지, 경로를 정확히 입력했는지 확인해보는 것이 좋습니다.



9. 라이브러리 불러오기 오류

R에서 사용할 라이브러리를 불러오지 않으면 해당 함수를 사용할 수 없습니다.

 

library(ggplot2)
ggplot(data, aes(x = x, y = y)) + geom_line() #Error: could not find function "ggplot"
library(ggplot2)
ggplot(data, aes(x = x, y = y)) + geom_line()

 

10. 요소 선택 오류

R에서는 리스트, 벡터, 데이터프레임에서 요소를 선택할 때 인덱스를 잘못 선택할 경우 오류가 발생합니다.

 

x <- c(1, 2, 3)
x[4] #Error: subscript out of bounds
x[3]

 

11. 분할 오류

R에서는 문자열을 split 할때 잘못된 구분자를 사용하면 오류가 발생합니다.

 

x <- "a,b,c,d"
strsplit(x, ";") #Error in strsplit(x, ";") : non-character argument

x <- "a,b,c,d"
strsplit(x, ",")

 

12. 데이터 타입 변환 오류

R에서는 데이터 타입을 변환할때 잘못된 타입을 사용할 경우 오류가 발생합니다.

 

as.numeric("a") #Error: (list) object cannot be coerced to type 'double'

as.numeric(1)

 

13. 함수 인자 오류

R에서 함수를 사용할때 인자 개수나 이름을 잘못 사용할 경우 오류가 발생합니다.

 

mean(1,2,3,4,5, na=TRUE) #Error in mean.default(1, 2, 3, 4, 5, na = TRUE) :
unused argument (na = TRUE)
mean(1,2,3,4,5, na.rm = TRUE)

 

14. 인덱싱 구문 오류

R에서는 데이터를 인덱싱 할 때 사용하는 구문을 잘못 사용할 경우 오류가 발생합니다.

x <- data.frame(a = c(1, 2, 3), b = c(4, 5, 6))
x[,c("a","b")] #Error in x[, c("a", "b")] : incorrect number of dimensions
x[,c("a","b"), drop = F]

 

15. 불필요한 세미콜론(;)

R에서는 세미콜론을 사용하지 않는 경우에도 코드가 실행됩니다. 하지만 불필요한 세미콜론을 사용할 경우 코드 실행 오류가 발생할 수 있습니다.

x <- 5; #unnecessary ;
x <- 5

 

이러한 오류를 방지하려면 오류의 의미를 이해하는 것이 중요합니다.

긴글 읽어주셔서 감사합니다.

 

 

 

 

 

반응형
  • 네이버 블러그 공유하기
  • 네이버 밴드에 공유하기
  • 페이스북 공유하기
  • 카카오스토리 공유하기