2014-01-17 53 views
-1

我有一個數據幀X有幾列,並且想要爲每一行選擇列N,其中N對於每行是不同的,取決於某個矢量(在這個例子中:在列的SEL值)選擇矩陣/數據幀的N列,其中N基於另一個矢量

A B C D sel 
16/04/2012 NA -1.25 -1.25 0.25 1 
17/04/2012 NA 20 21.25 17.25 1 
18/04/2012 -5.25 -5.25 -5.75 -1 2 
19/04/2012 -6 -6 -6.25 -12 2 
20/04/2012 2.5 2.5 2.75 NA 2 
23/04/2012 NA -12.25 -12 NA 2 
24/04/2012 NA 7.25 7.5 7.25 2 
25/04/2012 NA 17.5 17 18.25 4 
26/04/2012 NA 9.5 10 11.5 4 
27/04/2012 NA 2 1 -3.25 4 
30/04/2012 NA -4.75 -4 -1 4 
01/05/2012 NA 6.25 5.75 17 3 
02/05/2012 NA -3 -2.75 -16 3 
03/05/2012 NA -11.5 -11.5 -6.75 4 
04/05/2012 NA -23.5 -23.75 -23 4 

,所以我最終會與

16/04/2012 NA 
17/04/2012 NA 
18/04/2012 -5.25 
19/04/2012 -6 
20/04/2012 2.5 
23/04/2012 -12.25 
24/04/2012 7.25 
25/04/2012 18.25 
26/04/2012 11.5 
27/04/2012 -3.25 
30/04/2012 -1 
01/05/2012 5.75 
02/05/2012 -2.75 
03/05/2012 -6.75 
04/05/2012 -23 

X[,X$sel] 給了我一個方陣等於nrow(X),並不完全符合我的需要。

是有某種「Excel的指數」的功能型我也許可以使用應用函數裏面?

回答

0

你可以通過與行數通過一個兩列的矩陣數據幀使用的subsetting方法在第二列的第一列數和列數這樣:

X[matrix(ncol=2, c(1:nrow(X), X$sel)] 

會給你那些選定的元素,然後你就可以建設成任何結果數據幀你瞄準的載體或者只是增加。現有的數據幀如下:

X$selected_values <- X[matrix(ncol=2, c(1:nrow(X), X$sel)]