2016-03-11 76 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

另一種方式被添加。 –