R의 이전 및 다음 행에있는 값 사이의 평균을 얻는 방법은 무엇입니까?

Jn Coe

나는 수년 동안 많은 그룹에 대한 지출과 함께 R에 대한 데이터 프레임을 가지고 있습니다. 기본적으로 다음과 같이 보입니다 (회색 열).

표

전년도와 다음 해의 지출을 기준으로 노란색 열에 표시된 것처럼 연도 별 지출 평균을 추가하고 싶습니다.

이 코드를 사용해 보았습니다.

expenditures %>%
 group_by(id) %>%
 mutate(
   avg_exp = ifelse(year != 2011 && year != 2008,
                        mean(c(
                          Spending[Year %in% (Year-1)],
                          Spending[Year %in% (Year+1)])),
                        NA)) %>%
 View()

그러나 나는 모든 종류의 이상한 숫자를 유지합니다. 우선, ifelse는 else 조건 만 적용합니다. 심지어 Year 열이 정수로 설정되어있는 경우에도 마찬가지입니다. 둘째, else 조건에서도 평균을 계산하도록 설정하더라도 모든 행 (각 그룹의)이 동일한 숫자로 채워 져서 어디서 왔는지 모르겠습니다 (일반 평균에 가깝습니다). 그룹의 동일하지 않음).

이 작업을 수행하는 간단한 방법이 있습니까? 감사

Akrun

우리는 사용할 수 +laglead'ID'로 그룹화 한 후 2로 나눈다. default모두 옵션 lead과는 lag되어 NA있으므로, 그 첫 번째와 마지막 '년도'될 것 NA'평균'열에서

library(dplyr)
expenditures %>% 
    group_by(ID) %>%
    mutate(Mean = (lead(Spending) + lag(Spending))/2)

-산출

# A tibble: 12 x 4
# Groups:   ID [3]
#      ID  Year Spending   new
#   <int> <int>    <dbl> <dbl>
# 1     1  2008       55  NA  
# 2     1  2009       57  60  
# 3     1  2010       65  63.5
# 4     1  2011       70  NA  
# 5     2  2008       80  NA  
# 6     2  2009       87  85  
# 7     2  2010       90  91  
# 8     2  2011       95  NA  
# 9     3  2008      120  NA  
#10     3  2009      123 125  
#11     3  2010      130 129  
#12     3  2011      135  NA  

또는 다른 옵션은 출력 cbind대한 lead/lag다음 사용rowMeans

expenditures %>%
   group_by(ID) %>%
   mutate(Mean = rowMeans(cbind(lead(Spending), lag(Spending))))

데이터

expenditures <- structure(list(ID = c(1L, 1L, 1L, 1L, 2L, 2L, 2L, 2L, 3L, 3L, 
3L, 3L), Year = c(2008L, 2009L, 2010L, 2011L, 2008L, 2009L, 2010L, 
2011L, 2008L, 2009L, 2010L, 2011L), Spending = c(55, 57, 65, 
70, 80, 87, 90, 95, 120, 123, 130, 135)), class = "data.frame",
row.names = c(NA, 
-12L))

이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.

침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제

에서 수정
0

몇 마디 만하겠습니다

0리뷰
로그인참여 후 검토

관련 기사

분류에서Dev

NaN을 Pandas DataFrame의 이전 값과 후속 값의 평균으로 바꾸는 방법은 무엇입니까?

분류에서Dev

다른 데이터 프레임에서 특정 열의 평균을 얻는 방법은 무엇입니까?

분류에서Dev

r에서 다른 매개 변수의 행 및 열 값을 얻는 방법은 무엇입니까?

분류에서Dev

Pandas DataFrame의 값을 이전 행 및 이전 열의 값과 비교하는 방법은 무엇입니까?

분류에서Dev

pandas 피벗 테이블의 0 및 nan 값을 행 평균으로 대체하는 방법은 무엇입니까?

분류에서Dev

열의 두 값 사이의 평균을 취하고 Excel 에서이 값을 그 사이에 배치하는 방법은 무엇입니까?

분류에서Dev

테이블에 행이 없으면 다른 행의 값을 얻는 방법은 무엇입니까?

분류에서Dev

Excel에서 평균보다 크거나 작은 x 및 y 값을 포함하는 셀 쌍의 수를 계산하는 방법은 무엇입니까?

분류에서Dev

팬더에서 0이 아닌 중앙값 / 여러 열의 평균을 찾는 방법은 무엇입니까?

분류에서Dev

Pandas는 사전 집계 된 데이터의 평균 / 평균을 얻습니다.

분류에서Dev

Swift에서 사전의 평균을 찾는 방법은 무엇입니까?

분류에서Dev

R의 다음 행으로 이동하기 전에 각 행에 대한 함수 반환 값을 만드는 방법은 무엇입니까?

분류에서Dev

Mongo에서 특정 날짜의 각 시간에 대한 평균 값을 얻는 방법은 무엇입니까?

분류에서Dev

PHP의 폴더에서 다음 및 이전 탐색을 표시하는 방법은 무엇입니까?

분류에서Dev

값이 배열에 있는지 확인하고 다음 값을 얻는 방법은 무엇입니까?

분류에서Dev

열의 n 값과 전체 평균을 계산하는 방법은 무엇입니까?

분류에서Dev

한계 사이의 최소값을 얻는 방법은 무엇입니까?

분류에서Dev

Dax-열 x 값이 y 인 하루 평균 값을 얻는 방법은 무엇입니까?

분류에서Dev

열의 특정 값이있는 행을 다른 시트로 복사하는 방법은 무엇입니까?

분류에서Dev

R의 여러 테이블에서 행으로 평균을 계산하는 방법은 무엇입니까?

분류에서Dev

다른 selectmenu ()의 값을 얻는 방법은 무엇입니까?

분류에서Dev

R에서 데이터 프레임의 각 행에 대한 다양한 요소 수의 평균을 취하는 방법은 무엇입니까?

분류에서Dev

가격 슬라이더의 'rangpicker'에서 최소 및 최대 값을 얻는 방법은 무엇입니까?

분류에서Dev

파이썬의 중첩 사전에서 값을 얻는 방법은 무엇입니까?

분류에서Dev

jQuery의 JavaScript를 사용하여 다음 페이지에 값을 게시하는 방법은 무엇입니까?

분류에서Dev

같은 단어의 평균을 그룹당 X 번 이상 얻는 방법은 무엇입니까?

분류에서Dev

두 데이터 세트의 평균을 찾는 방법은 무엇입니까?

분류에서Dev

R에서 기본 값 (평균, SD, SE 등)을 계산하기 위해 데이터 프레임을 다시 포맷하는 방법은 무엇입니까?

분류에서Dev

쉘 스크립트의 xrdb에서 배경 및 전경색 값을 얻는 방법은 무엇입니까?

Related 관련 기사

  1. 1

    NaN을 Pandas DataFrame의 이전 값과 후속 값의 평균으로 바꾸는 방법은 무엇입니까?

  2. 2

    다른 데이터 프레임에서 특정 열의 평균을 얻는 방법은 무엇입니까?

  3. 3

    r에서 다른 매개 변수의 행 및 열 값을 얻는 방법은 무엇입니까?

  4. 4

    Pandas DataFrame의 값을 이전 행 및 이전 열의 값과 비교하는 방법은 무엇입니까?

  5. 5

    pandas 피벗 테이블의 0 및 nan 값을 행 평균으로 대체하는 방법은 무엇입니까?

  6. 6

    열의 두 값 사이의 평균을 취하고 Excel 에서이 값을 그 사이에 배치하는 방법은 무엇입니까?

  7. 7

    테이블에 행이 없으면 다른 행의 값을 얻는 방법은 무엇입니까?

  8. 8

    Excel에서 평균보다 크거나 작은 x 및 y 값을 포함하는 셀 쌍의 수를 계산하는 방법은 무엇입니까?

  9. 9

    팬더에서 0이 아닌 중앙값 / 여러 열의 평균을 찾는 방법은 무엇입니까?

  10. 10

    Pandas는 사전 집계 된 데이터의 평균 / 평균을 얻습니다.

  11. 11

    Swift에서 사전의 평균을 찾는 방법은 무엇입니까?

  12. 12

    R의 다음 행으로 이동하기 전에 각 행에 대한 함수 반환 값을 만드는 방법은 무엇입니까?

  13. 13

    Mongo에서 특정 날짜의 각 시간에 대한 평균 값을 얻는 방법은 무엇입니까?

  14. 14

    PHP의 폴더에서 다음 및 이전 탐색을 표시하는 방법은 무엇입니까?

  15. 15

    값이 배열에 있는지 확인하고 다음 값을 얻는 방법은 무엇입니까?

  16. 16

    열의 n 값과 전체 평균을 계산하는 방법은 무엇입니까?

  17. 17

    한계 사이의 최소값을 얻는 방법은 무엇입니까?

  18. 18

    Dax-열 x 값이 y 인 하루 평균 값을 얻는 방법은 무엇입니까?

  19. 19

    열의 특정 값이있는 행을 다른 시트로 복사하는 방법은 무엇입니까?

  20. 20

    R의 여러 테이블에서 행으로 평균을 계산하는 방법은 무엇입니까?

  21. 21

    다른 selectmenu ()의 값을 얻는 방법은 무엇입니까?

  22. 22

    R에서 데이터 프레임의 각 행에 대한 다양한 요소 수의 평균을 취하는 방법은 무엇입니까?

  23. 23

    가격 슬라이더의 'rangpicker'에서 최소 및 최대 값을 얻는 방법은 무엇입니까?

  24. 24

    파이썬의 중첩 사전에서 값을 얻는 방법은 무엇입니까?

  25. 25

    jQuery의 JavaScript를 사용하여 다음 페이지에 값을 게시하는 방법은 무엇입니까?

  26. 26

    같은 단어의 평균을 그룹당 X 번 이상 얻는 방법은 무엇입니까?

  27. 27

    두 데이터 세트의 평균을 찾는 방법은 무엇입니까?

  28. 28

    R에서 기본 값 (평균, SD, SE 등)을 계산하기 위해 데이터 프레임을 다시 포맷하는 방법은 무엇입니까?

  29. 29

    쉘 스크립트의 xrdb에서 배경 및 전경색 값을 얻는 방법은 무엇입니까?

뜨겁다태그

보관