我有一个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
中,我有几十万行,我的最终数组也将是几十万行。
答案 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