큰 데이터 프레임에 인덱스 (숫자 ID) 열 추가
이 질문에 이미 답변이 있습니다.
- ID (행 번호) 열 만들기 6 답변
데이터 프레임에 큰 CSV 파일을 읽었습니다. csv 파일의 데이터는 사용자 정보를 나타내는 여러 웹 사이트에서 가져온 것입니다. 예를 들어 다음은 데이터 프레임의 구조입니다.
user_id, number_of_logins, number_of_images, web
001, 34, 3, aa.com
002, 4, 4, aa.com
034, 3, 3, aa.com
001, 12, 4, bb.com
002, 1, 3, bb.com
034, 2, 2, cc.com
데이터를 데이터 프레임으로 가져 오면 알 수 있듯이 user_id는 더 이상 고유 한 ID가 아니므로 모든 분석이 수행됩니다. 나는 이전에 다른 열을 추가하려고 시도하고 user_id
있는데 그 열로 채워질 "generated_uid"
의 인덱스를 거의 사용합니다 data.frame
. 이것을 달성하는 가장 좋은 방법은 무엇입니까?
다음을 사용하여 숫자 시퀀스를 매우 쉽게 추가 할 수 있습니다.
data$ID <- seq.int(nrow(data))
물론 실제 의미가 없으므로 분석에 사용되지 않을 수도 있습니다.
이미을 사용중인 library(tidyverse)
경우 다음을 사용할 수 있습니다.
data <- tibble::rowid_to_column(data, "ID")
대체 dplyr 패키지 사용 :
library("dplyr") # or library("tidyverse")
df <- df %>% mutate(id = row_number())
당신이 경우 data.frame
이다 data.table
, 당신은 특별한 기호를 사용할 수 있습니다 .I
:
data[, ID := .I]
글쎄, 내가 당신을 올바르게 이해한다면. 다음과 같이 할 수 있습니다.
그것을 보여주기 위해 먼저 data.frame
귀하의 예제로
df <-
scan(what = character(), sep = ",", text =
"001, 34, 3, aa.com
002, 4, 4, aa.com
034, 3, 3, aa.com
001, 12, 4, bb.com
002, 1, 3, bb.com
034, 2, 2, cc.com")
df <- as.data.frame(matrix(df, 6, 4, byrow = TRUE))
colnames(df) <- c("user_id", "number_of_logins", "number_of_images", "web")
그런 다음 다음 행 중 하나를 실행 data.frame
하여 생성 된 사용자 ID로 행 번호가 있는 열 (의 끝에)을 추가 할 수 있습니다. 두 번째 줄은 단순히 선행 0을 추가합니다.
df$generated_uid <- 1:nrow(df)
df$generated_uid2 <- sprintf("%03d", 1:nrow(df))
생성 된 사용자 ID가 첫 번째 열이되도록하려면 다음과 같이 열을 추가 할 수 있습니다.
df <- cbind("generated_uid3" = sprintf("%03d", 1:nrow(df)), df)
또는 단순히 열을 재정비하십시오.
참고 URL : https://stackoverflow.com/questions/23518605/add-an-index-numeric-id-column-to-large-data-frame
'developer tip' 카테고리의 다른 글
Chunk.entrypoints : Chunks.groupsIterable을 사용하고 대신 Entrypoint 인스턴스별로 필터링합니다. (0) | 2020.11.19 |
---|---|
마이그레이션 생성-조인 테이블 생성 (0) | 2020.11.19 |
iPhone은 개발을 지원할 수 없습니다 (0) | 2020.11.19 |
Gradle 오류 : ': app : processDebugGoogleServices'작업에 대한 실행 실패 (0) | 2020.11.19 |
Javascript에서 POSTDATA 경고없이 페이지를 다시로드하려면 어떻게합니까? (0) | 2020.11.19 |