如何在没有循环的情况下向data.frame添加多个值?

时间:2017-10-07 15:20:03

标签: r matrix vector subset

假设我有基质D,其中包括特定年龄的每年死亡数。

我想用存储的适当死亡计数填充此矩阵 矢量年龄,但下面的代码给了我错误的答案。如何在不进行循环的情况下编写代码?

# Year and age grid for tables
Years=c(2007:2017)
Ages=c(60:70)

#Data.frame of deaths
D=data.frame(matrix(ncol=length(Years),nrow=length(Ages)));  D[is.na(D)]=0 
colnames(D)=Years
rownames(D)=Ages

Age=c(60,61,62,65,65,65,68,69,60)
year=2010

D[as.character(Age),as.character(year)]<-
D[as.character(Age),as.character(year)]+1
D[,'2010'] # 1 1 1 0 0 1 0 0 1 1 0
# Should be  2 1 1 0 0 3 0 0 1 1 0

1 个答案:

答案 0 :(得分:0)

您需要使用table

AgeTable = table(Age)
D[names(AgeTable), as.character(year)] = AgeTable
D[,'2010']
[1] 2 1 1 0 0 3 0 0 1 1 0