8
我的舊代碼是這樣的:轉換簡單GGPLOT2代碼使用data.table
library(ggplot2)
gp<-ggplot(NULL,aes(x=Income))
gp<-gp+geom_density(data=dat$Male,color="blue")
gp<-gp+geom_density(data=dat$Female,color="green")
gp<-gp+geom_density(data=dat$Alien,color="red")
plot(gp) #Works
現在我已經用出色的data.table庫(而不是data.frame)開始:
library(data.table)
cols<-c("blue","green","red")
gp<-ggplot(NULL,aes(x=Income))
dat[, list(gp+geom_density(data=.SD, color=cols[.GRP])), by=Gender]
#I even tried
dat[, list(gp<-gp+geom_density(data=.SD, color=cols[.GRP])), by=Gender]
plot(gp) #Error: No layers in plot
我不完全確定什麼是錯誤的,但似乎我在J()內運行的代碼在外部範圍內未被識別。
如何以data.table慣用方式實現此目的?
我不認爲它會這樣工作。請記住,data.table **是** data.frame並使用您的舊代碼。 – Roland 2013-03-20 15:39:31
@羅蘭,當然,我仍然可以使用我的舊代碼。但它會挫敗使用data.table的目的。最後,我想利用datatable的能力(即dt [,by = something])而不是使用split() – Kostolma 2013-03-20 16:00:26