안녕하세요. 아주 간단한 질문입니다. data.frame
에서 및 values > -1.5
을 0
으로 대체하려면 어떻게해야하나요? "파이프"가 가장 좋은 해결책일까요?숫자 범위의 값 바꾸기
고맙습니다.
E.
안녕하세요. 아주 간단한 질문입니다. data.frame
에서 및 values > -1.5
을 0
으로 대체하려면 어떻게해야하나요? "파이프"가 가장 좋은 해결책일까요?숫자 범위의 값 바꾸기
고맙습니다.
E.
이이만큼 간단합니다
data[data > -1.5 & data < 1.5] <- 0
콘라드의 솔루션이 더 일반화하지만이 특정한 경우에 그냥 절대 값을 포함하는 비교를 사용하는 것이 적합 할 수 있습니다.
> dat <- data.frame(x = seq(-2, 2), y = rnorm(5))
> dat
x y
1 -2 -1.48698044
2 -1 -0.05863244
3 0 1.75314296
4 1 -0.72946147
5 2 -0.74845237
> dat$x[abs(dat$x) < 1.5] <- 0
> dat
x y
1 -2 -1.48698044
2 0 -0.05863244
3 0 1.75314296
4 0 -0.72946147
5 2 -0.74845237
replace
은 다른 옵션을 제공합니다.
replace(DF, DF > -1.5 & DF < 1.5, 0)
이 기능을 사용하면 목록에 저장 data.frame
s의 걸쳐 값을 교체해야하는 경우에 간단한 구문을 허용합니다.
# list of data.frames
dframes <- replicate(3, data.frame(a=seq(-2, 2, by=1), b=seq(2, -2, by=-1)), simplify=FALSE)
# perform the replacement across all DFs in the list.
lapply(dframes, function(DF) replace(DF, DF > -1.5 & DF < 1.5, 0))
그렇지 않으면, 당신은
lapply(dframes, function(DF) {DF[DF > -1.5 & DF < 1.5] <- 0;DF})
같은 것을 작성해야 것