【发布时间】:2012-02-04 04:27:22
【问题描述】:
我正在尝试模拟 n 次测量顺序,并查看测量顺序如何影响我的研究对象。为此,我试图为数据框中的新列生成整数随机数。我有一个大数据框,我想根据块中的观察数在数据框中添加一个包含随机数的列。
数据示例(每一行是一个观察):
df <- data.frame(A=c(1,1,1,2,2,3,3,3,3),
B=c("x","b","c","g","h","g","g","u","l"),
C=c(1,2,4,1,5,7,1,2,5))
A B C
1 1 x 1
2 1 b 2
3 1 c 4
4 2 g 1
5 2 h 5
6 3 g 7
7 3 g 1
8 3 u 2
9 3 l 5
我想做的是添加一个 D 列并根据每个块的长度生成随机整数。块在 A 列中定义。
结果应该是这样的:
df <- data.frame(A=c(1,1,1,2,2,3,3,3,3),
B=c("x","b","c","g","h","g","g","u","l"),
C=c(1,2,4,1,5,7,1,2,5),
D=c(2,1,3,2,1,4,3,1,2))
> df
A B C D
1 1 x 1 2
2 1 b 2 1
3 1 c 4 3
4 2 g 1 2
5 2 h 5 1
6 3 g 7 4
7 3 g 1 3
8 3 u 2 1
9 3 l 5 2
我尝试使用 R:s sample() 函数生成随机数,但我的问题是根据块长度拆分数据并添加新列。非常感谢任何帮助。
【问题讨论】:
-
欢迎来到 SO,为提供可重现的示例做得很好。
标签: r random split simulation