2015-07-12 71 views
-1

我有一個data.frame dat它有兩列數字。我想創建一個新的數組,該數組的第二列data.frame的值與第一列中的數字匹配,否則爲-99。從本質上講,我有:從部分創建新陣列

dat 
    col1 col2 
1  2 6 
2  5 43 
3  10 67 

,我想創建長度爲10(存在於col1的最高值),這將是這樣的一個新的數組:

-99, 6, -99, -99, 43, -99, -99, -99, -99, 67 

在我的數據。幀dat我有幾十萬行,我的最終陣列也會有幾十萬長。

回答

1

像這樣:

> result <- rep(-99,max(dat$col1)) 
> result[dat$col1] <- dat$col2 
> result 
[1] -99 6 -99 -99 43 -99 -99 -99 -99 67