DBILITY

R 필드 접근 간편 처리 본문

statistics/R

R 필드 접근 간편 처리

DBILITY 2018. 11. 29. 17:03
반응형

데이터 프레임이나 리스트내 필드

with()함수는 VB의 with문과 유사하며,

데이터프레임$컬럼명형태로 접근하던 것을 with(데이터프레임,컬럼)으로 바로 접근가능하다.

within()함수는 내부에서 데이터의 수정이 가능하다.

attach()함수는 with()과 유사하나 즉시 접근가능하게 하고, 해제는 detach()함수를 사용한다.

attach()후 data가 수정되더라도 detach()시 원래 data에는 영향을 주지 않는다.

package unload시에도 detach를 사용한다.

> x<-data.frame(val=c(1,2,3,4,NA,5,NA))
> x
  val
1   1
2   2
3   3
4   4
5  NA
6   5
7  NA
> mean(x$val,na.rm = T)
[1] 3
> with(x,mean(val))
[1] NA
> with(x,mean(val,na.rm = T))
[1] 3
> attach(x)
> mean(val,na.rm = T)
[1] 3
> detach(x)
> mean(val,na.rm = T)
Error in mean(val, na.rm = T) : object 'val' not found

> with(x,{
+   val
+ })
[1]  1  2  3  4 NA  5 NA
> with(x,{
+   ifelse(is.na(val),median(val,na.rm = T),val)
+ })
[1] 1 2 3 4 3 5 3
> within(x,{
+   val<-ifelse(is.na(val),median(val,na.rm = T),val)
+ })
  val
1   1
2   2
3   3
4   4
5   3
6   5
7   3
> x
  val
1   1
2   2
3   3
4   4
5  NA
6   5
7  NA
> x$val[is.na(x$val)]<-median(x$val,na.rm = T)
> x
  val
1   1
2   2
3   3
4   4
5   3
6   5
7   3

which()함수는 벡터나 배열에서 조건에 만족하는 값의 인덱스를 찾는다.

which.max()는 최대값의 인덱스, which.min()은 최소값의 인덱스를 찾는다.

> x<-data.frame(val=c(1,2,3,4,NA,5,NA))
> x
  val
1   1
2   2
3   3
4   4
5  NA
6   5
7  NA
> which(x$val == 5)
[1] 6
> which.max(x$val)
[1] 6
> which.min(x$val)
[1] 1

 

 

반응형

'statistics > R' 카테고리의 다른 글

R plyr package  (0) 2018.11.30
R SQL package  (0) 2018.11.30
R ROracle install, test ( 설치 및 테스트 )  (0) 2018.11.29
R package load,unload  (0) 2018.11.29
R data divide, merge, extract ( 데이터 분할, 병합, 부분추출 )  (0) 2018.11.28
Comments