1
我一直在努力嘗試獲取至少一個來自LA的所有家庭的這個功能。當我使用包data.table時,可以上傳並運行效果良好的結果,但由於內存問題,我使用的是PostgreSQL,這就成了問題。R和postgreSQL表操作
year sample serial pernum wtper relate birthyr bplctry 2005 8406 1244876000 3 75 4 NA 24040 2005 8406 1244877000 1 62 1 NA 22010 2005 8406 1244877000 2 67 2 NA 24040 2005 8406 1244878000 1 137 1 NA 24040 2005 8406 1244878000 2 130 2 NA 24040 2005 8406 1244878000 3 149 3 NA 24040 > paises [1] 21080 21100 21130 22020 22030 22040 22050 22060 22070 22080 23010 23020 23030 23040 23050 23060 23100 23110 23130 23140
然後,閱讀(作品)...
創建一個PostgreSQL實例,並創建一個連接。
m <- dbDriver("PostgreSQL")
con <- dbConnect(m, user="postgres", password="xxxx", dbname="IPUMS", host='localhost', port=5432)
mig_db <- src_postgres(dbname = 'IPUMS', user = 'postgres', password = 'xxxx')
然後,在這裏我試圖獲取所有的家庭與一個LA。 (這部分工作,如果我從data.table pckg FREAD函數read美國,但這裏是代碼的SQL語句)
USA <- tbl(mig_db, sql('SELECT * FROM namerica'))
paises.n <- fread('paises.csv',header=T, sep=',', data.table=F)
paises <- paises.n$code
這裏的問題是,該函數返回一個邏輯向量(邏輯(0))的美國拉丁裔$:
USA$latino <- ifelse(USA$bplctry %in% paises, 'LA', 'otro')
la <- USA[USA$latino == 'LA', ]
id <- unique(la$serial)
usa.new <- USA[USA$serial %in% id,]