2016-03-11 56 views
0

集的均值和方差的数据集我有此数据集structure(list(Color = structure(c(1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L), .Label = c("blue", "green", "red" ), class = "factor")), .Names = "Color", row.names = c(NA, -30L ), class = "data.frame")生成基于彩色

我想补充指派为5的平均值和2于蓝色的方差,10的平均柱并且方差4到绿色,平均值100和方差15到红色。

+0

是否回答帮助? –

回答

0

如果您的数据按示例进行排序,则为means和std.deviations创建矢量。然后使用Map调用rnorm对每个组:

mus <- c(5, 10, 100) 
sds <- c(2, 4, 15) 
nums <- Map(function(n,mu, sd) rnorm(n, mu, sd), table(df1$Color), mus, sds) 
df1$rndm <- unlist(nums) 
df1 
# Color  rndm 
# 1 blue 5.048143 
# 2 blue 8.159234 
# 3 blue 7.029401 
# 4 blue 3.298584 
# 5 blue 3.388559 
# 6 blue 3.125807 
# 7 blue 3.428520 
# 8 blue 3.659469 
# 9 blue 7.881609 
# 10 blue 3.483098 
# 11 green 5.942954 
# 12 green 3.172638 
# 13 green 10.872443 

更新

要更换,而无需更改排序最后一行:

df1[order(df1$Color),"rndm"] <- unlist(nums) 
+0

我的资料没有排序..有没有办法通过特定颜色来做到这一点..?我应该能够排除它,只是好奇。 –

+0

您可以添加'stack(nums)'它会为您排序bc该列表有名称 –

+0

另一种方式被添加。 –