큰 데이터 프레임에 인덱스(숫자 ID) 열 추가
데이터 프레임에 대용량 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")
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
'source' 카테고리의 다른 글
| 1분마다 저장하고 최신 24시간 데이터만 데이터베이스에서 선택하는 모범 사례? (0) | 2023.06.06 |
|---|---|
| 쌓인 막대 차트에 데이터 값 표시(ggplot2) (0) | 2023.06.06 |
| 이전 행의 값을 기준으로 MariaDB에서 새 값 계산 (0) | 2023.06.06 |
| C로 퍼센트 기호(%)를 인쇄하려면 어떻게 해야 합니까? (0) | 2023.06.06 |
| 루비에서 send()는 무엇을 합니까? (0) | 2023.06.06 |