
Title | no room error message | |
Author | Stata technical support |
If you see the error message no room to add more ... while trying to run a command, then you will need to save your dataset to a file (if you have not already done so) and clear the memory before you can change the settings.
When dealing with these memory settings, width is the total number of bytes to hold a single observation. A byte variable takes up 1 byte, an integer variable takes up 2 bytes, a float or a long takes up 4 bytes, a double takes up 8 bytes, and a str# variable takes up # bytes. So, the total width can be found by multiplying these values by the number of variables of each type and summing.
When specifying your memory settings, keep in mind that
Before loading in your dataset, you can ask Stata for advice.
. memsize using nlswom variables: 23 width: 34 observations: 69515 data set size: 2308 k data will not fit in current partition insufficient total memoryIf Stata gives the message insufficient total memory, then you will have to exit Stata, increase the /k option, and restart.
. memsize using nlswom variables: 23 width: 34 observations: 69515 data set size: 2308 k data will not fit in current partition approx. free float free command maxobs variables obs ----------------------------------------------------------- (F4) set maxvar 33 width 44 91081 2 21566 (F5) set maxvar 46 width 57 70308 5 793 (F6) set maxvar 43 width 54 74214 5 4699In this case, the data will not fit with the settings that I currently have in place. Stata has offered 3 different settings that I may use that will allow me to load in the data. I can choose one of those settings by either typing in the command or pressing the appropriate function key.
In order to determine the total amount of RAM required for a dataset so that you can set the /k option, you can
. describe using nlswom Contains data NLS Women 14-24 in 1968 Obs: 69515 Vars: 23 Width: 34 1. idcode int %8.0g NLS id 2. year byte %8.0g interview year 3. birth_yr byte %8.0g birth year 4. age byte %8.0g age in current year 5. race byte %8.0g 1=wh, 2=bl, 3=other 6. msp byte %8.0g 1 if married, spouse present 7. nev_mar byte %8.0g 1 if never yet married 8. in_sch byte %8.0g 1 if enrolled in school 9. grade byte %8.0g current grade completed 10. collgrad byte %8.0g 1 if college graduate 11. not_smsa byte %8.0g 1 if not SMSA 12. c_city byte %8.0g 1 if central city 13. south byte %8.0g 1 if south 14. ind_code byte %8.0g industry of employment 15. occ_code byte %8.0g occupation 16. union byte %8.0g 1 if union 17. wks_ue byte %8.0g weeks unemployed last year 18. ttl_exp float %9.0g total work experience 19. job_num byte %8.0g job number 20. tenure float %9.0g job tenure, in years 21. hours int %8.0g usual hours worked 22. wks_work byte %8.0g weeks worked last year 23. ln_wage float %9.0g ln(wage/GNP deflator) Sorted by:Now, deciding on what to specify for the /k option requires us to know what we will specify for width and maxobs. Let's say we want to leave room to add 4 variables of type double. This increases the width by 32 to a total of 66. Let's leave room for 800 additional observations for a total of 70315. We can use Stata to perform our calculation:
.di 70315*66/1024 4532.0215This tells us that we should specify /k4533 or higher and after starting Stata issue
. set maxvar 40 width 66