나는 R에 data.frame
의 1,900 만 행과 90 개의 열을 가지고 있습니다. 여분의 RAM 및 CPU주기가 충분합니다. 이 데이터 프레임에서 단일 열 이름을 변경하는 것이 R에 대한 매우 강력한 작업입니다.대용량 data.frame을 사용하면 열 이름을 변경하는 데 시간이 오래 걸리는 이유는 무엇입니까?
system.time(colnames(my.df)[1] <- "foo")
user system elapsed
356.88 16.54 373.39
왜 이렇게 되나요? 모든 행에 열 이름이 어떻게 든 저장됩니까? 완전히 새로운 데이터 프레임을 만드는 것입니까? 이 작업은 무시할 수있는 시간 내에 완료되어야합니다. R manual entry에는 아무 것도 보이지 않습니다.
Windows 7에서 R (64 비트) 빌드 7600을 실행 중이며 현재 작업 공간에서 작은 data.frame의 colnames를 설정하면 system.time()
에 따라 '0'시간이 걸립니다.
편집 : 나는 data.table
을 사용할 가능성을 알고 있으며 솔직히 말해서 나는 차를 마시 러 가서 이름을 바꾸기 위해 5 분을 기다릴 수있다. 내가 관심이있는 것은 무엇이 일어나고 있으며 왜 그럴까요? 여러 개의 덧글이 언급 한
이상하게도, 나는 이것에 대해 방금 읽었습니다. 나는 실제로 그것이 df를 복사하고 있을지도 모른다고 믿는다. 2.15.0을 사용하는 경우 패키지 ** 데이터 프레임 **을 설치 및로드하고 해당 정보가 도움이되는지 확인하십시오. – joran
매튜 도울 (Matthew Dowle)이 이것을 매우 잘 설명하고 있으며 ('http://tackoverflow.com/questions/10655438/rename-one-named-column-in-r/10655997#10655997)'data.table 패키지 . – Chase
덕분에, 나는 이미'data.table'을 꽤 많이 사용합니다. (끈적 거리는 상황에서 나를 빠져 나간 Matthew Dowle에게 빚이 있습니다!) - 여기서 나는 무슨 일이 일어나고 있는지, 왜 이상적인지에 대해 설명했습니다. 대답은 실제로 "data.frame은 잘못 코딩 된 것입니까?" – Ina