홈>
그래서 다음과 같은 데이터 세트가 있습니다 :
site year territories cat
1 10 2017 0.0 1
2 10 2016 NA NA
3 10 2015 2.0 1
4 10 2014 NA NA
5 10 2013 NA NA
6 11 2012 NA NA
7 11 2011 0.0 2
8 11 2010 NA NA
9 11 2009 1.0 2
그러나 나는
cat
에 NA를 갖고 싶지 않다
기둥. 대신 같은 사이트 내의 모든 줄이 같은 값의
cat
를 갖기를 원합니다.
.
이렇게 :
site year territories cat
1 10 2017 0.0 1
2 10 2016 NA 1
3 10 2015 2.0 1
4 10 2014 NA 1
5 10 2013 NA 1
6 11 2012 NA 2
7 11 2011 0.0 2
8 11 2010 NA 2
9 11 2009 1.0 2
어떻게 할 수 있을지 아십니까?
- 답변 # 1
- 답변 # 2
완전한 기본 R 대안 :
transform(DF, cat = ave(cat, site, FUN = function(x) x[!is.na(x)][1]))
다음을 제공합니다 :
와이즈 비즈 와이즈 비즈로 구현 된 동일한 논리 :
site year territories cat 1 10 2017 0 1 2 10 2016 NA 1 3 10 2015 2 1 4 10 2014 NA 1 5 10 2013 NA 1 6 11 2012 NA 2 7 11 2011 0 2 8 11 2010 NA 2 9 11 2009 1 2
또는
dplyr
library(dplyr) DF %>% group_by(site) %>% mutate(cat = na.omit(cat)[1])
의 패키지 :na.locf
또는
zoo
library(zoo) transform(DF, cat = ave(cat, site, FUN = function(x) na.locf(na.locf(x, fromLast = TRUE, na.rm = FALSE))))
에서 :fill
참고 : 부가 가치가
tidyr
의 가치가 무엇인지 궁금합니다.library(tidyr) library(dplyr) DF %>% group_by(site) %>% fill(cat) %>% fill(cat, .direction = "up")
의 열 각cat
에 대해 동일해야합니다 . 정확히 동일한 두 개의 그룹화 변수가 생겨 중복되는 imo를 만들 수 있습니다. - 답변 # 3
cat
를 사용할 수도 있습니다site
tidyr::fill
관련 자료
- python - 범위 내에서 임의의 값으로 데이터 프레임에 새 행을 추가하는 방법
- python - 데이터 프레임 - 빈번한 값 및 개수
- python - pandas dataframe 내의 정규식 - 문자 사이의 최소 길이 찾기
- Python의 Pandas에서 데이터 프레임의 열 값으로 목록의 값을 만드는 확장 가능한 접근 방식
- python - 다른 열의 숨겨진 값으로 Pandas 데이터 프레임에 새 열을 추가 하시겠습니까?
- r - 숫자 값에 대해서만 전체 데이터 프레임에서 값을 na로 다시 코딩하는 방법은 무엇입니까?
- python - 데이터 프레임에서 중첩 된 사전 값 업데이트
- python - Groupby 데이터 프레임의 열 값을 계산하는 방법은 무엇입니까?
- python - DataFrame을 사용하여 제품 키의 값을 참조하고 모두 함께 추가
- python - 인덱스와 열이 일치하지 않을 때 다른 데이터 프레임의 값으로 데이터 프레임을 업데이트하는 방법
- dataframe - 열 그룹 내에서 서로 다른 값의 수를 계산합니다
- python - 사전 목록 인 데이터 프레임 열에서 각 중첩 키를 새 열로 갖는 쉼표로 값을 조인하는 방법은 무엇입니까?
- R의 중첩 된 데이터 프레임에서 중복 된 값 찾기
- python - 내 데이터 프레임 값 중 일부는 사전을 포함하고 다른 일부는 값을 포함합니다 사전을 제거하려면 어떻게합니까?
- python - Pandas 데이터 프레임의 각 행을 복제하고 목록을 기반으로 일부 열의 값을 변경합니다
- Pandas Dataframe - pandas 데이터 프레임 - 열 값을 기준으로 그룹화하고 다른 열의 값을 조회합니다
- apache spark - pyspark 데이터 프레임을 병합하고 null 값을 삭제하는 방법은 무엇입니까?
- python - 길이가 다른 다른 데이터 프레임의 값을 기반으로 기존 데이터 프레임에 새 열을 만드는 방법
- python - 값을 계산하고 새 열에 추가하기 위해 데이터 프레임에서 행 반복
- pandas - 데이터 프레임에서 NaN 값을 감지 할 수 없음 (python)
관련 질문
- r : 별도의 연결된 데이터 프레임에서 변수를 기반으로 데이터 프레임 행 그룹화
- r : 그룹 별 고유 /고유 값 수를 기반으로 이진 변수 생성
- 두 개의 FOR 시클이있는 R에서 테이블을 만들면 데이터 프레임 "Maux"가 올바르게 채워지지 않습니다.
- R의 날짜 기준에 따라 데이터 프레임 병합
- r : 모든 열에 견적을 추가하는 방법은 무엇입니까?
- r : 고정 시간으로 as.ITime ()에 as.ITime ()으로 분 추가
- 날짜 범위 R로 데이터 그룹화
- R 조건부 행 백분율을 기반으로하는 합계로 대체 할 합계
- r : 특정 비 NA 값 열에서 계산 된 평균 값을 기존 평균 열에 입력하는 방법
- r : 마지막 열을 유지하는 데 사용할 기능
na.aggregate
사용ave
를 사용하여 NA 값을 채우려면site
에 의해 그것을 .주는 :
참고재생 가능한 형식으로 사용 된 입력은 다음과 같습니다.