从部分数组创建新数组

时间:2015-07-12 15:46:45

标签: arrays r dataframe

我有一个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

在我的data.frame dat中,我有几十万行,我的最终数组也将是几十万行。

1 个答案:

答案 0 :(得分:1)

像这样:

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