2015-07-12 72 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