2015-01-30 2 views
1

Я пытаюсь создать кадр данных с именем «студенты» с четырьмя переменными: «Пол», «Год» («Презентация», «Софорум», «Юниор», «Старший»), «Возраст» и «ГПД». Идея состоит в том, чтобы иметь кадр данных, который иллюстрирует четыре уровня измерения: номинальный, порядковый, интервал и отношение.Правильно задавать значения столбцов фрейма данных

На данный момент это выглядит примерно так:

ID Gender Year  Age GPA 
1  Male  Sophomore 0  3.9 
2  Male  Junior  0  3.3 
3  Female Junior  0  3.6 
4  Male  Freshman 0  3.1 
5  Female Senior  0  2.9 

У меня возникли проблемы с возрастом. Я бы хотел, чтобы Age был назначен на основе вероятности. Например, если студент первокурсник, я хотел бы Эйдж быть назначены вместе что-то вроде следующих строк:

Age Probability 
14  .47 
15  .48 
16  .05 

У меня есть функция, чтобы сделать это настроить так:

1: Age <- function(df) { 
2: for (i in 1:nrow(df) { 
3:  if (df[i, 2] == "Freshman") { 
4:  df[i, 3] = 15 
5:   } else if { 
6:   continue through the years 
7:  } 
8: } 
9: } 

Мое мышление состоит в том, что я хочу изменить правую часть задания в строке 4 на то, что будет задавать возраст вероятностно. Вот что я не могу понять, как это сделать.

Относительно примечания, если есть лучший способ сделать это, чем то, что я рассматриваю, я был бы благодарен за это.

И последнее замечание, я в Интернете в целом, спросил форум R на Reddit и Talk Stats и искал теги R на этом сайте, все безрезультатно. Я не могу поверить, что я первый человек, который когда-либо хотел сделать что-то подобное, поэтому мне кажется, что, возможно, я неправильно формулирую запрос. Если это так, любые рекомендации там также будут оценены.

ответ

3

Используйте sample функцию как это:

sample(14:16, size=1,prob=c(0.47, 0.48, 0.05)) 
## [1] 14 
sample(14:16, size=10,rep=TRUE,prob=c(0.47, 0.48, 0.05)) 
## [1] 14 14 15 14 15 16 15 15 15 15 

 Смежные вопросы

  • Нет связанных вопросов^_^