新至R从SAS来了...随机数生成的每一行
我想用的功能
runif(1,000, min = 0, max = 1)
创造的每一行1000张随机数的载体,并将其添加到我的data.frame
。
尝试这给了我各行上同一号码:
EL$randoms <- runif(1, min = 0, max = 1)
如何解决这个简单的问题?
新至R从SAS来了...随机数生成的每一行
我想用的功能
runif(1,000, min = 0, max = 1)
创造的每一行1000张随机数的载体,并将其添加到我的data.frame
。
尝试这给了我各行上同一号码:
EL$randoms <- runif(1, min = 0, max = 1)
如何解决这个简单的问题?
这样?
EL$randoms <- runif(1000, min=0, max=1)
El$randoms
是您的数据框的整个列。所以你必须为它分配尽可能多的行数。通过您的尝试,只生成一个随机数,并且R根据其回收规则,根据需要“重复”该次数以匹配EL$randoms
的长度。
OP有两个使它更令人困惑的命令。 – Arun 2013-02-25 22:20:17
@阿伦是的,赞同! – juba 2013-02-25 22:22:03
+1 - @joe - 我发现从SPSS/SAS类系统到R的第一件重要的事情:不要在数据集/数据框中逐行考虑。大多数R函数并不打算只创建一个值,而是以向量化的方式工作来一次创建所有的值。例如 - 不要创建1000次随机值(每行一次),创建1000个随机值并将其分配给数据集。 – thelatemail 2013-02-25 22:56:39
超级迟到这次派对,但它出现在谷歌搜索。这是一种为数据集中的每一行分配随机数的方法,无需指定确切的行数。
EL$randoms <- runif(nrow(EL), min = 0, max = 1)
你究竟输出了什么?一个有1000列的数据框? – 2013-02-25 22:17:43
呃...... @Julius,我想你可能已经通过删除'runif(1,000 ...)'中的','来纠正OP的问题。虽然不知道。 – Arun 2013-02-25 22:18:33
@joe,你的第一个命令有什么问题?它给你1000统一生成的值... – Arun 2013-02-25 22:19:53