2017-10-07 1 views
1

특정 연령별 사망자 수로 구성된 행렬 D가 있다고 가정합니다.루프없이 data.frame에 여러 값을 추가하는 방법은 무엇입니까?

나는이 행렬에 벡터 나이에 저장된 적절한 사망 수를 입력하고 싶지만 다음 코드는 나에게 잘못된 대답을 제공합니다. 어떻게 루프를 만들지 않고 코드를 작성해야합니까?

# 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 

답변

0

당신은 해결책이이 문제에 대한 work`s 그건 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 
+0

사용해야합니다. 하지만 이전 테이블 colums 누적 될 수있는 솔루션이 필요합니다. –

+0

@Sattel 그럼 지난 몇 년 동안 데이터를 어떻게 저장 했습니까? 실제 문제에 대응할 수있는 데이터를 제공해주십시오. – G5W

+0

이 코드 줄이 있고 내 데이터가 있다고 가정합니다. 각 전화에 대해 나이를 여러 번 복제했습니다. 그러나 코드는 그것을 축적하지 않습니다. 데이터 : https://drive.google.com/open?id=0BxtjNizJ0NDlWmdsb3NRVzhDUm8 PY [as.character (died.after.bd $ Age), as.character (year)] = (as.numeric ((died.after .bd $ Death-died.after.bd $ bd ) /365.25)) + PY [as.character (died.after.bd $ Age), as.character (year)]) –

관련 문제