R에서 큰 데이터 프레임 만들기
이 기사에서는 R에서 큰 데이터 프레임을 만드는 몇 가지 방법을 설명합니다.
벡터와 인자를 사용하여 R에서 데이터 프레임 만들기
데이터 프레임은 R 언어의 가장 강력한 내장 데이터 구조이며 각 열의 길이가 같고 이름이 있어야하는 표 형식 행렬과 유사합니다. 그러나 그 아래에는 데이터 프레임의 각 열이 마치list
데이터 구조의 요소 인 것처럼 처리되므로 더 많은list
유사 기능이 있습니다. 장점은 다음 코드 스 니펫에 설명 된대로 벡터와 요인의 혼합을 사용하여 데이터 프레임을 구성 할 수 있다는 것입니다. data.frame
함수를 사용하여 벡터와 인자에서 데이터 프레임 객체를 만듭니다.
v1 <- c(1.1, 1.2, 1.3, 2.1, 2.2, 2.3)
v2 <- c(11, 12, 13, 21, 22, 23)
v3 <- c(1, 2, 3, 1, 2, 3)
wday <- factor(c("Wed", "Thu", "Mon", "Wed", "Thu", "Fri"))
df2 <- data.frame(v1, v2, v3, wday)
출력:
v1 v2 v3 wday
1 1.1 11 1 Wed
2 1.2 12 2 Thu
3 1.3 13 3 Mon
4 2.1 21 1 Wed
5 2.2 22 2 Thu
6 2.3 23 3 Fri
목록을 사용하여 R에서 데이터 프레임 만들기
또는 목록 개체를 사용하여 데이터 프레임 개체를 만들 수 있습니다. 그러나이 메서드에는 단일 목록 개체를 데이터 프레임으로 변환하는as.data.frame
이라는 다른 함수가 필요합니다. 다음 예제에서list
함수를 사용하여 목록 객체를 구성하고as.data.frame
의 인수로 호출하는 체인을 구성합니다. 데이터 프레임에는 열 레이블이 있어야하므로 사용자가 지정하지 않으면 일반적으로 자동으로 선택됩니다. 변환 중에 원하지 않는 이름이 선택되면 항상colnames
함수를 호출하고 여기에 열 이름 벡터를 할당 할 수 있습니다.
v1 <- c(1.1, 1.2, 1.3, 2.1, 2.2, 2.3)
v2 <- c(11, 12, 13, 21, 22, 23)
v3 <- c(1, 2, 3, 1, 2, 3)
wday <- factor(c("Wed", "Thu", "Mon", "Wed", "Thu", "Fri"))
df1 <- as.data.frame(list(v1, v2, v3, wday))
colnames(df1) <- c("v1", "v2", "v3", "wday")
df1
출력:
v1 v2 v3 wday
1 1.1 11 1 Wed
2 1.2 12 2 Thu
3 1.3 13 3 Mon
4 2.1 21 1 Wed
5 2.2 22 2 Thu
6 2.3 23 3 Fri
행렬을 사용하여 R에서 데이터 프레임 만들기
때로는 벡터 또는 목록으로 초기화하는 데 비현실적인 대규모 데이터 프레임 할당이 필요합니다. 다행히도matrix
기능은 행 / 열 번호를 지정하여 대용량 데이터 프레임을 구성하는 쉽고 빠른 방법을 제공합니다. 선택적으로 첫 번째 인수로 전달 된 벡터를 사용하여 데이터 프레임의 값을 초기화 할 수 있습니다. 그렇지 않으면 요소는NA
값을 갖습니다.
m1 <- matrix(1:1000, ncol = 10, nrow = 100)
df1 <- as.data.frame(m1)
df1
출력:
V1 V2 V3 V4 V5 V6 V7 V8 V9 V10
1 1 101 201 301 401 501 601 701 801 901
2 2 102 202 302 402 502 602 702 802 902
....
Founder of DelftStack.com. Jinku has worked in the robotics and automotive industries for over 8 years. He sharpened his coding skills when he needed to do the automatic testing, data collection from remote servers and report creation from the endurance test. He is from an electrical/electronics engineering background but has expanded his interest to embedded electronics, embedded programming and front-/back-end programming.
LinkedIn Facebook