填充与 R 中的参考向量对应的观察结果
Fill Observations that Correspond to a Reference Vector in R
我有两个向量,一个 (v.num
) 对应于 df
中的一个变量,另一个 (v.type
) 是我要填充到 df
与相应的向量。
v.num<-c(5, 6, 7, 8, 9, 10, 11)
v.type<-c(1, 3, 5, 2, 2, 4, 1)
df 看起来像这样:
set.seed(2016)
df <- data.frame(v.num=sample(5:11, 40000, replace=TRUE), obs=rnorm(40000))
我想做的是创建一个v.type
向量并存储对应于v.num
的v.type
喜欢:
head(df)
v.num obs v.type
1 6 1.6149522 3
2 6 -0.2676644 3
3 10 0.3013365 4
4 5 -0.8514377 1
5 8 0.5786278 2
6 5 -1.2974004 1
我试过了
for(i in 1:nrow(df)){
for(v in 1:length(v.num){
if(v.num[v]==df$v.num[i]){df$v.type[i]<-v.type[v]}
}}
但这需要很长时间,因为我有 40000 行。执行此任务最有效的方法是什么?
查看以下代码:
v.num<-c(5, 6, 7, 8, 9, 10, 11)
v.type<-c(1, 3, 5, 2, 2, 4, 1)
set.seed(2016)
df <- data.frame(v.num=sample(5:11, 40000, replace=TRUE), obs=rnorm(40000))
df$v.type <- v.type[match(df$v.num, v.num)]
我有两个向量,一个 (v.num
) 对应于 df
中的一个变量,另一个 (v.type
) 是我要填充到 df
与相应的向量。
v.num<-c(5, 6, 7, 8, 9, 10, 11)
v.type<-c(1, 3, 5, 2, 2, 4, 1)
df 看起来像这样:
set.seed(2016)
df <- data.frame(v.num=sample(5:11, 40000, replace=TRUE), obs=rnorm(40000))
我想做的是创建一个v.type
向量并存储对应于v.num
喜欢:
head(df)
v.num obs v.type
1 6 1.6149522 3
2 6 -0.2676644 3
3 10 0.3013365 4
4 5 -0.8514377 1
5 8 0.5786278 2
6 5 -1.2974004 1
我试过了
for(i in 1:nrow(df)){
for(v in 1:length(v.num){
if(v.num[v]==df$v.num[i]){df$v.type[i]<-v.type[v]}
}}
但这需要很长时间,因为我有 40000 行。执行此任务最有效的方法是什么?
查看以下代码:
v.num<-c(5, 6, 7, 8, 9, 10, 11)
v.type<-c(1, 3, 5, 2, 2, 4, 1)
set.seed(2016)
df <- data.frame(v.num=sample(5:11, 40000, replace=TRUE), obs=rnorm(40000))
df$v.type <- v.type[match(df$v.num, v.num)]