作者austinly (austinly)
看板Statistics
標題[程式] [R] 一個小問題
時間Fri Oct 2 00:27:19 2009
------------------------------------------------------------------------
[程式問題]: 一個資料處理的問題
[軟體熟悉度]:
低(1~3個月)
[問題敘述]:
資料型態: binary data, 0 or 1
假設資料長度為10,有3個0,7個1。 如: a = c(1,0,1,1,0,1,1,1,1,0)
若現在知道第2跟第8個位置為0,剩下7個1,1個0 為取後不放回隨機產生
ex.
X = c(1,1,0,1,1,1,1,1) 接著想把第2跟第8個位置插入0
產生 X = c(1,
0,1,0,1,1,1,1,
0,1)
我有試過利用 append指令,但這指令似乎只限定在某個之後插入,
若是很多分散且固定的位置則不是很有效率。
不知有沒有其他指令或是方法可以解決這個問題,謝謝。
-----------------------------------------------------------------------------
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 220.136.216.227
1F:→ idiotbie:x <- rep(1, 9) 10/02 09:51
2F:→ idiotbie:x[c(2, 8, sample(c(1:10)[-c(2, 8)], 1))] <- 0 10/02 09:51
3F:→ idiotbie:上面的方法是在去抽出除了2跟8外另一個0放置的位置, 10/02 09:52
4F:→ idiotbie:目前只想到這個,但可能很聰明的方法^^" 10/02 09:54
5F:→ idiotbie: 不是 10/02 09:55
6F:→ austinly:感謝!!解決了 10/04 15:01
7F:推 hakukinomoto:id <- (1:10)[c(-2,-8)] 10/10 12:46
8F:→ hakukinomoto:idvalue <- sample(c(rep(1,7),0), size=8, replace= 10/10 12:46
9F:→ hakukinomoto:FALSE) 10/10 12:47
10F:→ hakukinomoto:x <- rep(0, 10) 10/10 12:47
11F:→ hakukinomoto:for(i in 1:8){ 10/10 12:48
12F:→ hakukinomoto: x[id[i]] <- idvalue[i] 10/10 12:48
13F:→ hakukinomoto:} 10/10 12:48
14F:→ hakukinomoto:x 10/10 12:48