안녕하세요. 내용이 길어질것 같아 제 블로그로 초대했습니다. 혹시 출처 삭제 원하시면 알려주세요. 지워드립니다. 제가 html이 아직 익숙치 않아서 배경화면이 살짝 달라지네요. 이 점 양해 부탁드립니다. 


 1) (list로 받아진걸) 행렬로 저장하는 xxx가 뭔지 궁금합니다.

a <- read.csv(file="c:\\order4.csv", header=TRUE, sep=","); 

typeof(a); 

xxx(a);


2) 가령 5열의 1행부터 4행까지 공란을  숫자 zero (0)으로 채워넣으려고 합니다. / 물론 원파일은 매우 크고 이런 공란은 여러군데에서 생기지요 / 공란생긴거 모두 0 으로 바꾸는게 가능한가요?

[출처] [급질] read.csv 와 list가 잘 않됩니다. (통계 R 프로그래밍) |작성자 곰에이


파일이 한글파일인가요? 엑셀파일 열면 글씨가 깨져서 임의로 다른 파일 사용했습니다. csv파일에서 제가 AREA의 숫자를 일부러 몇개 지워서 저장했고요. 얘를 R로 불러왔습니다. 아래 데이터 보면 NA가 되어있죠. 아마 공란이 되어있을수도 있고 NA처럼 되어있을수도 있어요. 

apple<- read.csv("/Users/XX/Desktop/apple.csv", header = TRUE)[1:20,1:9]
apple
##     CROP AREA      DATATIME Tavg  Tmax  Tmin Rain    RH  Wet
## 1  apple    1 08-03-01 0:00 1.84  9.92 -6.08 0.00 46.66 0.00
## 2  apple    1 08-03-02 0:00 2.06 11.36 -5.40 0.00 52.88 0.00
## 3  apple    1 08-03-03 0:00 2.80  8.32 -2.58 0.00 62.32 0.00
## 4  apple   NA 08-03-04 0:00 0.20  3.72 -2.76 2.62 84.14 0.56
## 5  apple    1 08-03-05 0:00 1.10  9.26 -3.66 0.00 71.56 0.30
## 6  apple    1 08-03-06 0:00 1.10  9.30 -7.00 0.00 65.38 0.20
## 7  apple    1 08-03-07 0:00 2.08  8.72 -3.62 0.00 63.36 0.00
## 8  apple    1 08-03-08 0:00 1.94 12.90 -7.98 0.00 54.76 0.20
## 9  apple    1 08-03-09 0:00 4.54 15.02 -3.18 0.00 48.44 0.00
## 10 apple    1 08-03-10 0:00 4.40 14.82 -4.30 0.00 57.50 0.00
## 11 apple    1 08-03-11 0:00 6.26 17.36 -3.20 0.00 65.16 0.12
## 12 apple    1 08-03-12 0:00 7.58 18.04 -0.98 0.00 67.28 0.20
## 13 apple    1 08-03-13 0:00 7.18 14.82  0.74 0.58 69.62 0.10
## 14 apple   NA 08-03-14 0:00 7.90 14.80  0.44 0.00 69.38 0.40
## 15 apple    1 08-03-15 0:00 8.60 16.76 -0.20 0.00 57.06 0.00
## 16 apple    1 08-03-16 0:00 8.26 15.22  0.48 0.00 45.22 0.00
## 17 apple    1 08-03-17 0:00 6.18 17.84 -4.56 0.00 47.38 0.00
## 18 apple    1 08-03-18 0:00 8.80 18.28 -0.36 0.00 60.98 0.10
## 19 apple   NA 08-03-19 0:00 8.00 14.54 -0.42 0.00 66.42 0.00
## 20 apple    1 08-03-20 0:00 5.10 15.66 -5.60 0.00 54.50 0.12
typeof(apple)   - TYPE보면 LIST라고 되어있죠? 
## [1] "list"
class(apple)    - CLASS 보면 data.frame으로 되어있습니다. typeof와 class의 차이가 뭐냐라고 하면 컴퓨터적인 얘기이지만 object를 컴퓨터의 메모리에 어떻게 저장하느냐, 표현형식이 뭐냐인데요. 이건 주 내용이 아니니까 패스합니다. 
## [1] "data.frame"
apple <-as.matrix(apple)  -matrix 형식으로 바꾸고 싶으면 as.matrix(데이터이름) 하면 됩니다. 그러면
typeof(apple)    - typeof는 캐릭터형식으로 메모리에 저장된다고 하고요. 제가 여기엔 안적었지만 class가 어떤지 물어보면 matrix라고 뜹니다. 
## [1] "character"
is.character(apple[,2]) - 두번째 열이 문자형이냐고 물어봤더니 맞다네요. 제가 문자형으로 바꿔준 이유는 NA를 다른 수로 바꾸고 싶어서예요. 
## [1] TRUE
apple[is.na(apple)] <-0   - 명령어보면 apple데이터안에 is.na 즉 na가 있냐라고 물어본거고 있으면 0을 넣어라..라는 의미입니다. 아래 결과값 보면 0 잘 들어갔죠? 
apple
##    CROP    AREA DATATIME        Tavg   Tmax    Tmin    Rain   RH     
## 1  "apple" " 1" "08-03-01 0:00" "1.84" " 9.92" "-6.08" "0.00" "46.66"
## 2  "apple" " 1" "08-03-02 0:00" "2.06" "11.36" "-5.40" "0.00" "52.88"
## 3  "apple" " 1" "08-03-03 0:00" "2.80" " 8.32" "-2.58" "0.00" "62.32"
## 4  "apple" "0"  "08-03-04 0:00" "0.20" " 3.72" "-2.76" "2.62" "84.14"
## 5  "apple" " 1" "08-03-05 0:00" "1.10" " 9.26" "-3.66" "0.00" "71.56"
## 6  "apple" " 1" "08-03-06 0:00" "1.10" " 9.30" "-7.00" "0.00" "65.38"
## 7  "apple" " 1" "08-03-07 0:00" "2.08" " 8.72" "-3.62" "0.00" "63.36"
## 8  "apple" " 1" "08-03-08 0:00" "1.94" "12.90" "-7.98" "0.00" "54.76"
## 9  "apple" " 1" "08-03-09 0:00" "4.54" "15.02" "-3.18" "0.00" "48.44"
## 10 "apple" " 1" "08-03-10 0:00" "4.40" "14.82" "-4.30" "0.00" "57.50"
## 11 "apple" " 1" "08-03-11 0:00" "6.26" "17.36" "-3.20" "0.00" "65.16"
## 12 "apple" " 1" "08-03-12 0:00" "7.58" "18.04" "-0.98" "0.00" "67.28"
## 13 "apple" " 1" "08-03-13 0:00" "7.18" "14.82" " 0.74" "0.58" "69.62"
## 14 "apple" "0"  "08-03-14 0:00" "7.90" "14.80" " 0.44" "0.00" "69.38"
## 15 "apple" " 1" "08-03-15 0:00" "8.60" "16.76" "-0.20" "0.00" "57.06"
## 16 "apple" " 1" "08-03-16 0:00" "8.26" "15.22" " 0.48" "0.00" "45.22"
## 17 "apple" " 1" "08-03-17 0:00" "6.18" "17.84" "-4.56" "0.00" "47.38"
## 18 "apple" " 1" "08-03-18 0:00" "8.80" "18.28" "-0.36" "0.00" "60.98"
## 19 "apple" "0"  "08-03-19 0:00" "8.00" "14.54" "-0.42" "0.00" "66.42"
## 20 "apple" " 1" "08-03-20 0:00" "5.10" "15.66" "-5.60" "0.00" "54.50"


csv파일에서 빈 셀이 있는데 얘를 R로 불러오면 na로 뜨는데요. 만약 NA가 없이 빈 공간으로 되어있자면 

데이터이름$열이름[데이터이름$열이름 == ""] <- "NA" 라고 하면 됩니다. 

반응형

+ Recent posts