2013-02-25 106 views
0

新至R从SAS来了...随机数生成的每一行

我想用的功能

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

创造的每一行1000张随机数的载体,并将其添加到我的data.frame

尝试这给了我各行上同一号码:

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

如何解决这个简单的问题?

+0

你究竟输出了什么?一个有1000列的数据框? – 2013-02-25 22:17:43

+0

呃...... @Julius,我想你可能已经通过删除'runif(1,000 ...)'中的','来纠正OP的问题。虽然不知道。 – Arun 2013-02-25 22:18:33

+0

@joe,你的第一个命令有什么问题?它给你1000统一生成的值... – Arun 2013-02-25 22:19:53

回答

3

这样?

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

El$randoms是您的数据框的整个列。所以你必须为它分配尽可能多的行数。通过您的尝试,只生成一个随机数,并且R根据其回收规则,根据需要“重复”该次数以匹配EL$randoms的长度。

+0

OP有两个使它更令人困惑的命令。 – Arun 2013-02-25 22:20:17

+0

@阿伦是的,赞同! – juba 2013-02-25 22:22:03

+1

+1 - @joe - 我发现从SPSS/SAS类系统到R的第一件重要的事情:不要在数据集/数据框中逐行考虑。大多数R函数并不打算只创建一个值,而是以向量化的方式工作来一次创建所有的值。例如 - 不要创建1000次随机值(每行一次),创建1000个随机值并将其分配给数据集。 – thelatemail 2013-02-25 22:56:39

2

超级迟到这次派对,但它出现在谷歌搜索。这是一种为数据集中的每一行分配随机数的方法,无需指定确切的行数。

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