如何選擇列值的隨機樣本的所有行?R - 選擇行值作爲列值的隨機樣本?
我有一個數據幀,看起來像這樣:
tag weight
R007 10
R007 11
R007 9
J102 11
J102 9
J102 13
J102 10
M942 3
M054 9
M054 12
V671 12
V671 13
V671 9
V671 12
Z990 10
Z990 11
,你可以使用複製...
weights_df <- structure(list(tag = structure(c(4L, 4L, 4L, 1L, 1L, 1L, 1L,
3L, 2L, 2L, 5L, 5L, 5L, 5L, 6L, 6L), .Label = c("J102", "M054",
"M942", "R007", "V671", "Z990"), class = "factor"), value = c(10L,
11L, 9L, 11L, 9L, 13L, 10L, 3L, 9L, 12L, 12L, 14L, 5L, 12L, 11L,
15L)), .Names = c("tag", "value"), class = "data.frame", row.names = c(NA,
-16L))
我需要創建一個包含所有行從上面的數據幀一兩個隨機採樣標籤的數據幀。假設標籤R007和M942隨機選中,我的新數據幀需要如下所示:
tag weight
R007 10
R007 11
R007 9
M942 3
我該怎麼做?
我知道我可以創建這樣兩個隨機變量的列表:
library(plyr)
tags <- ddply(weights_df, .(tag), summarise, count = length(tag))
set.seed(5464)
tag_sample <- tags[sample(nrow(tags),2),]
tag_sample
在...
tag count
4 R007 3
3 M942 1
得到的,但我只是不知道如何用它來子集我的原始數據幀。
你明白了:)謝謝!我實際上試圖找到一個類似於SQL的「in」運算符,但沒有提出任何問題。 – 2011-05-10 02:13:04
不錯的一個。儘管我不認爲你需要調用'levels'函數。 – Ramnath 2011-05-10 02:24:20
@Ramnath這裏'levels'是必要的。 – kohske 2011-05-10 02:32:52