Learning R 5 - Lists and Data Frames
4928 단어 데이터 분석
장절 목표
length
, names
및 기타 이 변수를 검사하고 조작할 수 있는 함수기사 목록
Lists
List는 요소 유형이 서로 다른 벡터로 이해됩니다.
체인 테이블 생성하기
NULL
함수를 사용하면 체인 테이블을 만들 수 있습니다.> my_list my_list
[[1]]
[1] 1 2 3
[[2]]
[,1] [,2]
[1,] 1 3
[2,] 2 4
벡터와 달리 체인 테이블에는 데이터가 통합되지 않습니다.
list
함수를 사용하면 체인 테이블의 요소에 이름을 지정할 수 있습니다.> names(my_list) my_list
$vector
[1] 1 2 3
$matrix
[,1] [,2]
[1,] 1 3
[2,] 2 4
names
함수를 사용하는 것 외에 체인 테이블이 생성될 때 이름을 지정할 수 있습니다> my_list my_list
$vector
[1] 1 2 3
$matrix
[,1] [,2]
[1,] 1 3
[2,] 2 4
원자 변수와 귀속 변수
체인 테이블의 특성 때문에 체인 테이블의 원소는 여전히 하나의 체인 테이블이 될 수 있기 때문에 체인 테이블은 귀속할 수 있는 변수로 여겨질 수 있다.
names
및 is.atomic
함수를 사용하여 변수의 유형을 판단할 수 있음> is.atomic(list())
[1] FALSE
> is.atomic(numeric())
[1] TRUE
체인 테이블의 길이와 연산
체인 테이블의 길이는 그것의 맨 윗부분 원소의 수량과 관계가 있다.
> length(my_list)
[1] 2
체인표는 행렬처럼 차원, 행수, 열수 등의 정보를 측정할 수 없지만 유사한 이름의 함수를 제공한다.
> nrow(my_list)
NULL
> NROW(my_list)
[1] 2
> NCOL(my_list)
[1] 1
나무의 영혼의 두 함수.
연산에 관하여: 체인 테이블은 벡터처럼 그 대상에 직접 연산할 수 없다.
> 1:4 + 2:5
[1] 3 5 7 9
> list(c(1:4))+list(c(2:5))
# Error in list(c(1:4)) + list(c(2:5)):
체인 테이블에 직접 있는 연산은 오류를 알려 줍니다.
연산할 데이터를 벡터로 변환해야 결과를 정상적으로 연산할 수 있습니다.예:
> list(c(1:4))[[1]]+list(c(2:5))[[1]]
[1] 3 5 7 9
체인 테이블의 인덱스 작업
체인 테이블 구조가 다음과 같다고 가정하다
> my_list
벡터 작업과 유사하게 네모난 괄호 형식의 색인을 사용하여 요소를 얻을 수 있습니다.
> my_list[1:2]
$first
[1] 1
$second
[1] 2
> my_list[-3]
$first
[1] 1
$second
[1] 2
> my_list['first']
$first
[1] 1
> my_list[c(T,F,F)]
$first
[1] 1
** 참고: ** 색인을 통해 가져온 객체는 여전히 체인 테이블입니다.만약 우리가 대응하는 내용을 얻으려면 이중 중괄호를 사용해야 한다.
> typeof(my_list[1])
[1] "list"
> typeof(my_list[[1]])
[1] "double"
is.recursive
출력 형식의 이름을 사용하는 것 외에 논리 연산 함수typeof
로 현재 체인 테이블 형식인지 판단할 수 있습니다.네모난 괄호 인덱스를 사용하여 대상을 얻을 수 있을 뿐만 아니라,
is.list
이름을 붙여서 대응하는 요소를 찾을 수 있습니다. 주의: 유일하기만 하면 이름의 약어를 사용할 수 있습니다.> l l$other
[1] 9 10 11 12
> l$o
[1] 9 10 11 12
> l$same
NULL
$
기호의 작용은 값을 취하는 것으로 이중 중괄호와 같다> typeof(l['other']) == typeof(l$other)
[1] FALSE
> typeof(l[['other']]) == typeof(l$other)
[1] TRUE
체인 테이블과 벡터의 전환
$
함수는 유형의 전환을 실현할 수 있다.> as.list(1:4)
[[1]]
[1] 1
[[2]]
[1] 2
[[3]]
[1] 3
[[4]]
[1] 4
> as.vector(list(1:4))
[[1]]
[1] 1 2 3 4
> as.vector(list(a=1:2,b=3:4))
$a
[1] 1 2
$b
[1] 3 4
> unlist(list(a=1:2,b=3:4))
a1 a2 b1 b2
1 2 3 4
체인 시계의 결합
as.*
함수는 체인 테이블 표시 결합에 응용할 수 있다.사용 방식은 다음과 같다.> com_list com_list
[[1]]
[1] 1 2 3
[[2]]
[1] 4
> typeof(com_list)
[1] "list"
매트릭스 함수
c
또는 cbind
를 사용하면 체인 테이블의 연결을 실현할 수 있다> cbind(
+ list(a = 1, b = 2),
+ list(c = 3, d = 4)
+ )
[,1] [,2]
a 1 3
b 2 4
> rbind(
+ list(a = 1, b = 2),
+ list(c = 3, d = 4)
+ )
a b
[1,] 1 2
[2,] 3 4
Data Frame
데이터 상자는 매트릭스와 유사하지만 형식이 같을 필요는 없는 표 구조의 대상이다.
데이터 상자 객체 만들기
rbind
함수를 사용하면 데이터 상자 대상을 만들 수 있습니다.> data.frame(
+ x = 1,
+ y = 2:3,
+ z = 4:7
+ )
x y z
1 1 2 4
2 1 3 5
3 1 2 6
4 1 3 7
기본 데이터 상자 작업
전치
> df df
x y z
1 1 2 4
2 1 3 5
3 1 2 6
4 1 3 7
> t(df)
[,1] [,2] [,3] [,4]
x 1 1 1 1
y 2 3 2 3
z 4 5 6 7
열 병합
한 데이터 상자를 다른 데이터 상자의 오른쪽에 추가
> df1 df2 cbind(df1, df2)
x y z a b
1 1 2 4 a e
2 1 3 5 b f
3 1 2 6 c g
4 1 3 7 d h
행 병합
두 개의 데이터 상자를 줄에 따라 확장하는 방식으로 추가
> df1 df2 rbind(df1, df2)
x y z
1 1 2 4
2 1 3 5
3 1 2 6
4 1 3 7
5 1 4 7
6 2 5 8
7 3 6 9
조건부 병합
> df1 df2 merge(df1, df2, by = 'names')
names price color
1 apple 6.9 red
2 orange 8.9 orange
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
형태소 분석은 데스크톱을 구성하는 데 도움이?문자×기계 학습에 흥미를 가져와 개인 범위의 용도를 생각해, 폴더 정리에 사용할 수 있을까 생각해 검토를 시작했습니다. 이번 검토에서는 폴더 구성 & text의 읽기 → mecab × wordcloud를 실시하고 있...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.