read.table () 로 제목을 직접 읽고 싶습니다.

5189 단어 R
read.table()에서 파일을 데이터 프레임으로 읽을 때 제목에 R의 변수로 사용할 수 없는 문자가 있으면 .로 자동으로 변환됩니다.
예를 들어 다음 데이터가 있을 때
Name
Value(1hours)
Value(2hours)
Value(3hours)
#ofCount
Yamada
4.2
5.3
6.4

Tanaka
4.5
2.3
4.3

Sato
2.3
5.6
4.2

다음 코드로 데이터 프레임을 읽으면
data <- read.table(filepath, header=TRUE, comment.char="")
print(data)
결과는 다음과 같다.
    Name Value.1hours. Value.2hours. Value.3hours. X.ofCount
1 Yamada           4.2           5.3           6.4         3
2 Tanaka           4.5           2.3           4.3         4
3   Sato           2.3           5.6           4.2         2
제목을 확인하십시오.(). 로 변환합니다.#ofCountX.ofCount엉뚱한것이다.이것은 R의 변수가 숫자나 기호에서 시작할 수 없기 때문이다.
문제가 있다면 이 데이터를 그림 함수에 직접 건네주면 X.ofCount 등이 도표에 그려진다.
pairs(data[-1])

이런 상황의 발생을 방지하기 위해 read.table() 편리한 매개 변수가 있다check.names.
규정된 값은 TRUE 이며, 이 값을 FALSE 로 설정하면 제목이 변환되지 않습니다.
data <- read.table(filepath, header=TRUE, comment.char="", check.names=FALSE)
print(data)
    Name Value(1hours) Value(2hours) Value(3hours) #ofCount
1 Yamada           4.2           5.3           6.4        3
2 Tanaka           4.5           2.3           4.3        4
3   Sato           2.3           5.6           4.2        2
pairs(data[-1])

아, 편해요.
그러나 check.names=FALSE로 설정하면 데이터 프레임의 편리 태그 $ 를 사용할 수 없습니다.
print(data$Value(1hours))   # Error!
 エラー:   予想外の  シンボル  です  ( "print(data$Value(1hours" の) 
이것은 R의 문법을 위반했기 때문에 check.names=TRUE 이런 오류가 발생하지 않도록 기본적이다.
하지만 이를 피할 수 있는 방법이 있다.
백업으로 변수를 둘러쌉니다.
print(data$`Value(1hours)`) # OK
[1] 4.2 4.5 2.3
모델 표현식도 유사하게 설명할 수 있다.
lm(`Value(3hours)` ~ `Value(1hours)` + `Value(2hours)`, data=data)
Call:
lm(formula = `Value(3hours)` ~ `Value(1hours)` + `Value(2hours)`, 
    data = data)

Coefficients:
    (Intercept)  `Value(1hours)`  `Value(2hours)`  
        -3.4059           1.2888           0.8289  
사용하기에 의외로 편리하다.
여기서 마치겠습니다.

좋은 웹페이지 즐겨찾기