0

私はdata.frameこのようなものを持っています:

> mydata
ID ID2 ID3 X1 X2
1  1    1
2  2    1
3  3    1
4  1    2
5  2    2
6  1    3
7  2    3
8  3    3
9  4    3
10 1    4
11 2    4

ごとにランダムな行 (ランダム ID2) を取得したいID3ので、次のような新しいデータベースを作成できます。

> mydata2
ID ID2 ID3 X1 X2
1   3    1
2   2    2
3   3    3
4   1    4

でこれを行うことはできますsqldfか? それとも他のコード?

4

2 に答える 2

0

「または他のコード」、使用apply

#dummy data
df <- read.table(text="ID ID2 ID3
1  1    1
2  2    1
3  3    1
4  1    2
5  2    2
6  1    3
7  2    3
8  3    3
9  4    3
10 1    4
11 2    4",header=TRUE)

#using lapply
do.call(rbind,
        lapply(split.data.frame(df,df$ID3),
               function(d) d[sample(1:nrow(d),1),]))
于 2014-03-31T16:28:40.077 に答える