반응형
데이터 프레임의 모든 특정 값 바꾸기
데이터 프레임이있는 경우 모든 행과 열을 따라 모든 특정 값을 대체하려면 어떻게해야합니까? 예를 들어 모든 빈 레코드를 NA
's (위치를 입력하지 않고) 로 바꾸고 싶습니다 .
df <- data.frame(list(A=c("", "xyz", "jkl"), B=c(12, "", 100)))
A B
1 12
2 xyz
3 jkl 100
예상 결과:
A B
1 NA 12
2 xyz NA
3 jkl 100
이렇게 :
> df[df==""]<-NA
> df
A B
1 <NA> 12
2 xyz <NA>
3 jkl 100
PikkuKatja와 glallen이 좀 더 일반적인 해결책을 요청했고 아직 언급 할 수 없기 때문에 답을 작성하겠습니다. 다음과 같이 문을 결합 할 수 있습니다.
> df[df=="" | df==12] <- NA
> df
A B
1 <NA> <NA>
2 xyz <NA>
3 jkl 100
요인의 경우 zxzak의 코드는 이미 요인을 산출합니다.
> df <- data.frame(list(A=c("","xyz","jkl"), B=c(12,"",100)))
> str(df)
'data.frame': 3 obs. of 2 variables:
$ A: Factor w/ 3 levels "","jkl","xyz": 1 3 2
$ B: Factor w/ 3 levels "","100","12": 3 1 2
문제가 발생하면 일시적으로 요인을 삭제하는 것이 좋습니다.
df[] <- lapply(df, as.character)
다음은 몇 가지 dplyr
옵션입니다.
library(dplyr)
# all columns:
df %>%
mutate_all(~na_if(., ''))
# specific column types:
df %>%
mutate_if(is.factor, ~na_if(., ''))
# specific columns:
df %>%
mutate_at(vars(A, B), ~na_if(., ''))
# or:
df %>%
mutate(A = replace(A, A == '', NA))
# replace can be used if you want something other than NA:
df %>%
mutate(A = as.character(A)) %>%
mutate(A = replace(A, A == '', 'used to be empty'))
data.table을 사용하여 빠르게 얻을 수 있습니다. 먼저 요인없이 df를 생성하고
df <- data.frame(list(A=c("","xyz","jkl"), B=c(12,"",100)), stringsAsFactors=F)
이제 사용할 수 있습니다
setDT(df)
for (jj in 1:ncol(df)) set(df, i = which(df[[jj]]==""), j = jj, v = NA)
다시 data.frame으로 변환 할 수 있습니다.
setDF(df)
data.frame 만 사용하고 더 어려운 요인을 유지하려면 다음 작업을 수행해야합니다.
levels(df$value)[levels(df$value)==""] <- NA
where value is the name of every column. You need to insert it in a loop.
If you want to replace multiple values in a data frame, looping through all columns might help.
Say you want to replace ""
and 100
:
na_codes <- c(100, "")
for (i in seq_along(df)) {
df[[i]][df[[i]] %in% na_codes] <- NA
}
참고URL : https://stackoverflow.com/questions/19503266/replace-all-particular-values-in-a-data-frame
반응형
'IT TIP' 카테고리의 다른 글
Java 8을 사용한 모나드 (0) | 2020.10.18 |
---|---|
url_for를 사용하여 Flask 정적 파일에 연결 (0) | 2020.10.18 |
자바 스크립트로 라디오 버튼 확인 (0) | 2020.10.18 |
map 및 join을 사용하여 반응 구성 요소를 렌더링하는 방법 (0) | 2020.10.18 |
Java에서 스레드가 실행 중인지 어떻게 확인합니까? (0) | 2020.10.18 |