R에서 엄청나게 쉬운 코드 최적화 : 1 부

read.csv () 너머보기

Unsplash에 Pietro Mattia의 사진

저의 마지막 이야기 는 대학생으로서 전 세계적인 유행병에 맞서 싸우기 위해 제 역할을 어떻게했는지에 관한 것이기 때문에 제 대학에서 상당히 화제를 불러 일으켰습니다. 많은 친구들이 그 이야기의 특정 코드 라인에 흥미를 느꼈습니다. 그 라인은 :

test_df <- readRDS("input_data/cleaned_alumni_2.rds")

위의 추론에 직접 도달했다면 축하합니다. 절대적으로 정확합니다. 좋습니다. " rds "는 " csv " 와 매우 유사한 파일 형식입니다. 하지만 더 나은 것은 네이티브 R 데이터 유형이라는 것입니다 (나중에 자세히 설명). 네이티브 데이터 유형이기 때문에 R 스크립트 / 모델 / 대시 보드에 " rds "데이터 형식을로드하는 것이 일반 " csv" 데이터 형식 파일을 로드하는 것보다 빠르다는 것이 직관적 인 의미가 아닙니다 !!!

흥미 진진하지 않나요? R 고유의 다른 파일 형식, 더 빠른 로딩 시간, 이거 멋지지 않나요?

이제 다음 논리적 질문은 아마도 데이터 세트가 " csv" 파일 로만있는 경우 어떻게해야하는지에 대한 것입니다 . 걱정하지 마세요 . 단 두 줄의 코드로 "rds" 형식 으로 변환하는 방법을 보여 드리겠습니다 .

original_dataset <- read.csv("filename.csv")
saveRDS(original_dataset, "new_filename.rds")

converted_dataset <- readRDS("new_filename.rds")

벤치마킹 :

속도 향상에 대한 우리의 주장을 테스트하는 것은 나쁘지 않을 것입니다. 자, 여기갑니다 !!

글쎄, 아래에서 얻은 결과는 놀랍습니다. 거의 7.5 배의 속도로 빨라졌습니다. 그것은 한 줄의 코드를 변경하는 데 대한 큰 이점입니다.

사용 가능한 " csv "파일을 사용하여 시스템에서도 위의 테스트를 실행할 수 있습니다. " csv "파일을 사용할 수 없는 경우 샘플 데이터 세트 를 만들고 write.csv () 함수를 사용하여 만듭니다. 보너스로 " rds 파일" 의 파일 크기를 확인 하고 " csv 파일 " 과 비교하십시오 (힌트 : rds 파일도 압축되어 있습니다… : D).

이제 두 기능의 차이점을 시각적으로 살펴 보겠습니다.

아래 플롯은 벤치 마크에서 앞서 관찰 한 내용을 시각적으로 나타냅니다.

read.csv () 및 readRDS () 벤치 마크의 시각적 플롯

결론:

압축 된 파일 크기와“ rds” 의 빠른 로딩 시간은 스크립트가 데이터 세트를 반복해서로드해야 할 때 엄청난 이점을 제공합니다 (예 : 배포 된 ML 모델 또는 R Shiny 앱). 감소 된 데이터 크기는 호스팅 플랫폼에서 리소스를 덜 사용한다는 것을 의미하며 이는 다시 가지고있는 좋은 일입니다.

컴퓨터 과학 학부이기 때문에 최적화에 큰 관심을 갖고 있으며 함께이 영역을 계속 탐색 할 것입니다 😃. 여기서는 한 줄로 최적화를 약속했기 때문에 일부 외부 라이브러리에서 제공하는 다양한 읽기 / 로딩 옵션에 대해서는 다루지 않았습니다. 향후 게시물에서는 이러한 패키지도 살펴볼 것입니다.

내 일을 지원하기 위해 커피사줄 수도 있습니다 .

감사합니다. Godspeed.

Suggested posts

Kickass GitHub 프로필 페이지를 만드는 방법

새로운 특수 리포지토리 및 GitHub 작업으로 놀라운 GitHub 프로필을 만듭니다.

Kickass GitHub 프로필 페이지를 만드는 방법

이 자습서는 비디오로도 제공됩니다.이 링크를 클릭하십시오. 이 기사에서는 눈에 잘 띄고보기 좋은 Github 프로필 페이지를 만드는 방법을 볼 수 있습니다.

이미지는 크리에이터로서 콘텐츠를 만들거나 깨뜨릴 수 있습니다.

이미지는 크리에이터로서 콘텐츠를 만들거나 깨뜨릴 수 있습니다.

지루한 그림으로 흥미 진진한 기사를 읽고 싶은 사람. 사람들은 제정신이 아닙니다. 그것은 당신이 쓰는 방식 때문입니다.

Related posts

"실용적인 프로그래머"의 5 가지 필수 사항

역대 베스트셀러 코딩 북의 요점

"실용적인 프로그래머"의 5 가지 필수 사항

Pragmatic Programmer는 1999 년에 처음 출판되었으며 이후 역대 최고의 프로그래밍 책으로 선정되었습니다. 저자 Andy Hunt와 David Thomas는 Agile Manifesto의 원저자 중 하나였으며 몇 가지 심각한 자격을 가지고 있습니다.

대규모 GraphQL 쿼리 공격으로부터 보호

공격자가 공개적으로 사용 가능한 GraphQL 인터페이스를 사용하여 사이트를 스크랩하거나 서비스 거부 공격을 실행하는 방법에 대해 알아보십시오. 이들은 4 가지 방법 중 하나로이를 수행 할 수 있습니다. 단일 대형 쿼리를 신중하게 구성하여 실행하고, 관련 데이터를 가져올 수있는 병렬 쿼리를 많이 작성하고, 일괄 요청을 사용하여 많은 쿼리를 연속적으로 실행하고, 마지막으로 많은 요청을 보냅니다.

기술 인터뷰의 사회적 구성 요소

코딩 문제는 스트레스가 많지만 스트레스에 대한 당신의 반응은 당신의 기술적 능력보다 더 크게 말합니다.

기술 인터뷰의 사회적 구성 요소

기술 업계의 직책을 위해 인터뷰 할 때 일반적으로 제안을 고려하기 전에 최소한 3 차례의 인터뷰를 거치게됩니다. 라운드는 일반적으로 다음과 같습니다. 그렇게 생각하면 잘못된 것입니다.

훌륭한 개발자의 3 가지 행동 특성

훌륭한 개발자의 3 가지 행동 특성

훌륭한 개발자를 만드는 비 기술적 인 것들 나는이 기사를 작성하는 것을 한동안 미루고 있습니다. 나는 그것을 작성할 자격이 있다고 생각하지 못했습니다. 오늘은 쓸 때라고 생각했습니다.