고급 R 연구 노트 - 제 1 장 : 프로그래밍 기초

새로운 코로나 바이러스가 무기한 집에서 우한에서 자신의 논문 및 인턴십 학교 학생들을 쓰기 앞서 갈 자신에 매일 서, 또는 생명을 성취에 대해 뭔가를 배울 수없는 정말 아무것도 없었다하자, 발렌타인 데이의 좋은 시작을 활용하기로 결정 학습 의 남자 친구하면을 향기하지 않는 상관없이, 오늘은 경사스러운 연구 프로그램의 구현입니다.

왜 R?

사실, 오래 전, 아마 신입생 학년, 지난 여름에 물론 사용은 야구장을 기억하지 않는, 약간의 R하지만, 언어 이런 종류의 일을 배웠습니다. 현재 상황에서, 나를 위해, 그것은 여전히 ​​매우 필요하다, 정밀 R을 배울 수 배웁니다. 이 시스템을 다시 시작할 대해 배울 아직 그래서 나는 이러한 R을하지 않았을 경우 결국, 인터뷰 후 학교에서, 면접관은 나에게 물었다.

고급 R ?

학습 과정은 R 언어의 작업을 완료하는 사람들의 필요에 직접 "진짜 언어 R"또는 R 언어 연구 노트를 볼 수 꺼져 전에. 이 이하 약간 ~에 관해서는 그래서 과학 R에 대한 생각뿐만 아니라 방법의 과정에서이 책 꽤 좋은, 또 다른 영어 버전, 영어를 배울 수있는 블로그의 마지막 모습 "R 실제적인 언어입니다." 더 나은, 여기에 내가 그것을 완료 할 수 없습니다, 오 평가를 할보고 ... 배우

음, 말을 많이하지 않았다 배우기 시작!

소개

1-6 장 : 고급 프로그래밍 기법

장 7-10 : 데이터 관리 대책

장 11 ~ 14 : R과 클라우드 컴퓨팅 (아마존 클라우드)

15 장 : 동적 문서 및 보고서에 기술

제 1 장 : 프로그래밍 기초

- 고급 R 소프트웨어 선택의
R과 RStudio
자바


-Reproducing 결과

install.pacackages("checkpoint")
library(checkpoint)
checkpoint("2020-02-14", R.version = "3.4.4")
library(data.table)

같은 지주의 후속 버전에 대한 많은 기여를 R,가 있기 때문에 여기에 체크 포인트. 내가 이것을 사용하지 않은, 그래서 그러나 나는 또한 R 오류를 실행하는 데 시간이 오래 기다렸다.


-Types의 목적은
* 논리 개체에게 부울 값
TRUE. 1 =
FALSE = 0

TRUE
FLASE

* intergers整数
자본 L 접미사

42L

* 더블 더블 정밀 진짜

1.5

* 복잡한 숫자复数
내가 접미사

2+3i

* 공칭 공칭 스케일 수준 데이터 데이터는
ALSS 문자를 통해 저장으로 지정된 인용 부호 :

"a" ## character

* 값 기본값 없음

NA
NA_integer_
NA_real_
NA_character_
NA_complex_

* 인자因子
요인 변수가 이산 variale 처리되어야 함을 나타낸다. 요인은 원래 값을 표시하는 라벨, 정수로 저장됩니다.

factor(1:3)
factor(c("a", "b", "c"))
factor(letters[1:3])

* 벡터 벡터

c(1,2,3)

* 스칼라 스칼라

c(1)

* 매트릭스 매트릭스

matrix(c(1:6), nrow=3, ncol=2)

* 리스트列表
목록은 목록의 각 요소는 상이한 유형 될 수있는 물체의 벡터이다.

list(
	  c("a"),
	  c(1, 2, 3),
	  matrix(c(1:6), nrow=3, ncol=2)
)

* 데이터 프레임数据框
데이터 프레임 목록의 각 요소는 동일한 길이 인리스트의 특정 유형이다.

data.frame(1:3, 4:6)
data.frame(1:3, letters[1:3])

* 데이터 테이블数据表
데이터 테이블은 데이터 프레임과 유사하지만보다 빠르고 메모리 eficient을하고 수 있도록 설계되었습니다.

library(data.table)
data.table(1:3, 4:6)

결과는 data.frame 여기 data.table은 다르다 :
그림 삽입 설명 여기


- 기본 연산자와 함수
* 할당赋值
= 및 <- 대입 연산자, 그러나 명확성을 위하여 모두가,<- 일반적으로 할당하는 것이 좋습니다.

x <- 5
y = 3 

에서 기능 점검을 사용하여 다음
그림 삽입 설명 여기
으로 여기에 볼 수있는 <- 할당 벡터이며, 실제 번호 할당을 얻을 수 =.

* 인덱스索引
1의 색인 R 시작.

x <- c("a", "b", "c")
x[1]

* 부분 설정은 서브 세트

x2 <- matrix(c(1:6), nrow=3, ncol = 2)
x2[1, 2]          ## row 1, column 2
x2[1, ]           ## all row 1
x2[, 1]           ## all column 1
x2[c(1,2), ]      ## all rows 1 and 2

x[-2]             ## drop element two
x2[, -2]          ## drop column two
x2[-1, ]          ## drop row 1

* 액세스取值
단일 브래킷 단일 인덱스는 그 지점에서 전체 요소를 반환한다. 이중 괄호를 사용하여 목록의 요소 내에서 개체를 반환합니다.
그림 삽입 설명 여기
명명 된 데이터 프레임 및 목록 액세스 구성 요소에 $ 연산자를 사용할 수 있습니다.

x3 <- data.frame(A = 1:3, B = 4:6)
y2 <- list(C = c("a"), D = c(1, 2, 3))

x3$A
y2$C
x3[["A"]]
y2[["C"]]

x3[1, "A"]
x3[, "A"]

각 행과 별도의 이름을 가질 수있는 각 열은,이 이름은 후속하는 값을 사용할 수 있습니다 :

rownames(x3) <- c("first", "second", "third")
x3["second", "B"]

데이터 테이블에서 값과 행은 같은 값을 가지고 있지만 따옴표를 필요로하지 수있는 시간 열을 :

x4 <- data.table(A = 1:3, B = 4:6)
x4[1, ]
x4[, A]

복수의 값은 () 연산자 지명 될 때 필요한 :

x4[1:2, .(A, B)]

인용 부호 값을 사용하려면, 옵션을 추가합니다 : = FALSE로 :

x4[1, "A", with = FALSE]

물론,이 옵션을 사용하지 않고 그것을 시도하고, 오류가 없습니다. 그리고 is.matrix (), is.vector ()와 is.charactor () 조사와 결과가 모두 거짓입니다.

이 부분 또한 뒤에 이야기 "[" "]은"실제로 함수이지만, 그것은 단지 이름을하지 않았다 브래킷의 잔해를, 이름을받을 자격이 없어 것은
또한 다른 방법으로 값이 정말 눈을 뜨게입니다 설명

'['(x, 1)
'['(x3, "second", "A")

그러나 나는 너무 멋진 또한 값을 다른 아무것도하지 않는,이 값을 느끼게하거나, 잘 당신의 방법을 얻을 ...

* ()는 상속
기능을 보충 is.class () 함수입니다 :

inherits(x3, "data.frame")
inherits(x2, "matrix")

결과는 TRUE 또는 FALSE 부울 값이다.

* 강압 캐스트
위험 캐스트는주의 할 필요가있다.

as.integer(3.8)
as.integer(3.2)

출력으로서,이 값은 정수로 캐스팅 실수은 정수 부분을 얻어, 3이다.

as.character(3)
as.numeric(3)
as.complex(3)
as.factor(3)
as.matrix(3)
as.data.frame(3)
as.list(3)
as.logical("a")

출력은 "NA"입니다

as.logical(3)

출력은 0이 아닌 모든 실수는 다른, TRUE의 출력 TRUE입니다

as.logical(0)

출력 FALSE 인

as.numeric("a")

출력은 "NA"이며, 경고를 포함, 경고가 디폴트 값은 캐스트를 발생하기 때문에


-Mathematical 연산자와 함수는
* 比비교를大小

4 > 4
4 >= 4
4 < 4
4 == 4
4 != 4

(가) "="이 과제이다 "=="더 평등 것을 여기에 있습니다.

다른 프로그래밍 부동 소수점 표시 다른 환경 때문에, 그래서 우리는 정확도 (오차)를 정의 할 수 있습니다 :

all.equal(1.0002, tolerance = .01)

* 논리 연산자 논리 연산자
&를위한 AND
|에 대한 OR

TRUE | FALSE
TRUE & FALSE

c(TRUE, TRUE) | c(TRUE, FALSE)
c(TRUE, TRUE) & c(TRUE, FALSE)

당신이 출력 결과를 원하는 경우에, 당신은 "||" "&&"를 사용할 수 있습니다 :
그림 삽입 설명 여기

any(c(TRUE, TRUE, FALSE))
all(c(TRUE, FALSE, TRUE))

* 수학 연산자 수학 연산자

운영자 의미
+ 플러스의
- 마이너스
* 곱하기
/
^
% / % 取商
%% 나머지를 타고
% * % 행렬 곱셈

함수가 있습니다 :

sqrt(3)
abs(-3)
exp(1)
log(2.71)

사용할 수 있습니다 ? 산술 수학 연산자 일부를 조회 할 수 있습니다.

삼각 함수 :

cos(3.1415)
sin(3.1415)

그것은 사용할 수 있습니다 ? 삼각 쿼리 삼각 함수에.

행렬 연산 :

t(x2)                   ##将x2转置
crossprod(x2)           ##内积
tcrossprod(x2)          ##外积

제 1 장 끝 행복 친구 ~ ~

게시 된 원본 기사 · 원의 칭찬 0 · 조회수 12

추천

출처blog.csdn.net/weixin_43054092/article/details/104313960