2013-02-25 4 views
0

Новый в R приходит от SAS ...генерации случайных чисел для каждой строки

Я хочу, чтобы создать вектор из 1000 случайных чисел для каждой строки с помощью функции

runif(1,000, min = 0, max = 1) 

и добавить его в мой data.frame.

Попытка это дает мне тот же номер на каждой строке:

EL$randoms <- runif(1, min = 0, max = 1) 

Как решить эту простую задачу?

+0

Что именно вы получаете после? Кадр данных с 1000 столбцами? –

+0

um ... @Julius, я думаю, вы, возможно, исправили ошибку в вопросе OP, удалив ',' в 'runif (1,000 ...)' .. не уверен, хотя. – Arun

+0

@joe, в чем проблема с вашей первой командой? Это дает вам 1000 равномерно сгенерированных значений ... – Arun

ответ

3

Этот способ?

EL$randoms <- runif(1000, min=0, max=1) 

El$randoms целая колонна фрейма данных. Поэтому вам нужно назначить ему столько значений, сколько строк. С помощью того, что вы пробовали, было создано только одно случайное число, а R по правилу утилизации «повторяет» его столько раз, сколько необходимо, чтобы соответствовать длине EL$randoms.

+0

OP имеет обе команды, которые делают ее еще более запутанной. – Arun

+0

@ Арун Да, согласился! – juba

+1

+1 - @joe - Первая важная вещь, которую я нашел от SPSS/SAS-подобных систем до R: Не думаю, что строка за строкой в ​​наборах данных/data.frames. Большинство R-функций не предназначены для создания только одного значения, а скорее работают в векторном режиме для создания всех значений сразу. например - Не создавайте одно случайное значение 1000 раз (один раз для каждой строки), создайте 1000 случайных значений один раз и назначьте их набору данных. – thelatemail

2

Супер поздно этой стороне, но она появилась в поиске Google. Вот способ назначить случайное число для каждой строки в наборе данных без указания точного количества строк.

EL$randoms <- runif(nrow(EL), min = 0, max = 1) 
Смежные вопросы