특정 정수를 기반으로 셀을 추가하는 방법은 무엇입니까? [복제]

Nov 17 2020

열에서 값을 추가하고 싶습니다. 순서대로 진행됩니다.

0,225,2352,34234,23442,23456,0,123,...

0에서 다음 0까지 값을 추가하고 두 번째는 포함하지 않습니다. 예를 들어, 나는 출력을 원한다.(0+225+2352+34234+23442+23456),(0+123+,...,),...

새 합계 열로 저장하고 싶습니다.

답변

1 RicS Nov 17 2020 at 16:54

기본 R의 간단한 해결책은 다음과 같습니다.

sapply(split(x, cumsum(x == 0)), sum)

함께 split하면 기본적으로 당신이하려는 요소의 그룹을 만들어 sum함께 사용하여 sapply. 최종 결과는 명명 된 숫자 형 벡터입니다.


샘플 데이터

x <- c(0,225,2352,34234,23442,23456,0,123,2,0,1,42)
sapply(split(x, cumsum(x == 0)), sum)
#     1     2     3  
# 83709   125    43