我想用他們的人口統計信息製作一個人的樣本數據框。我想確保生成的每一行數據都是邏輯的。具體來說,沒有任何一行表明22歲以下的人也擁有博士學位。我如何使數據框對此進行邏輯檢查?以下是我目前使用的代碼。變量「a」是要輸出的行數,「b」是中位年齡,「d」是NA的概率。隨機人口統計數據框架理智檢查R
AgeFn <- function(a,b){
MedianYr <- b
Year <- 1900 + as.POSIXlt(Sys.Date())$year
RNormYr <- as.integer((rnorm(a)*10+MedianYr))
Age1 <- Year - RNormYr
}
EducationFn <- function(a, d){
EducationLs <- c("Some High School", "High School Grad", "Associates", "Bachelors",
"Masters", "Profession", "Doctorate", NA)
Education1 <- sample(EducationLs, a, replace=TRUE, prob=c(0.085, 0.25, 0.075, 0.176, 0.072,
0.019, 0.012, d))
return(Education1)
}
UserGen <- function(a,b,d){
ID <- c(1:a)
Age <- AgeFn(a,b,c)
Education <- EducationFn(a,d)
data.frame(ID, Age, Gender, Education)
}
系統:Mac OS 10.8.2,RStudio:v0.97.312
嗨有。你能否澄清'Age < - AgeFn(a,b,c)'中的'c'。感謝並歡迎來到SO – 2013-02-18 02:24:08
如果您將您的EducationFn概率擴展爲年齡的函數會更好。 (在實際樣本中是這樣。)儘管不太可能,22歲以下的人有可能獲得博士學位。 – N8TRO 2013-02-18 02:54:35