我有一个数据框和一个命名向量:
df=data.frame(col1=letters[1:3],col2=rnorm(3))
v=c(a=2,b=4,c=56,d=65)
我希望将它们合并,并只保留数据框中的值。v=data.frame(v)
merge(df,v,by.x='col1',by.y=row.names,all.x=TRUE)
Error in as.vector(x, mode) :
cannot coerce type 'closure' to vector of type 'any'
我想要:
col1 rnorm.3. v
1 a 0.6182781 2
2 b 0.9559001 4
3 c -0.5459661 56
请注意,我的真实数据有1百万行和1.5百万个带名称的向量。
setDT(df); df[stack(v), on=.(col1=ind), v := i.values][]
实现相同功能。 - Frank