人口統計情報を使用して、人々のサンプルデータフレームを作成しようとしています。生成されたデータの各行が論理的であることを確認したい。具体的には、博士号も取得している 22 歳未満の人物を示す行はありません。データフレームにその論理チェックを行わせるにはどうすればよいですか? 以下は、私が現在使用しているコードです。変数 "a" は出力する行数、"b" は年齢の中央値、"d" は NA の確率です。
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