[問題] 原始資料中遺漏值被填上奇怪文字問題

看板R_Language作者 (工人)時間7年前 (2018/03/25 19:34), 7年前編輯推噓0(0021)
留言21則, 2人參與, 7年前最新討論串1/1
[問題類型]: 程式諮詢(我想用R 做某件事情,但是我不知道要怎麼用R 寫出來) [軟體熟悉度]: 入門(寫過其他程式,只是對語法不熟悉) [問題敘述]: 不好意思 原始資料中 有些空白被填上- ? NA這種 但實際上他是遺漏值, 有沒有什麼方式可以把它們取代成空白 讓is.na判斷成是遺漏值, 謝謝!! [程式範例]: wdbc=read.table("DM_Assignment_2_Kidney.csv", header=F,sep=",") wdbc1=wdbc names(wdbc) <- c("Age","Blood Pressure","Specific Gravity","Albumin","Sugar","Red Blood Cells","Pus Cell","Pus Cell clumps","Bacteria","Blood Glucose Random","Blood Urea","Serum Creatinine","Sodium","Potassium","Hemoglobin","Packed Cell Volume","White Blood Cell Count","Red Blood Cell Count","Hypertension","Diabetes Mellitus","Coronary Artery Disease","Appetite","Pedal Edema","Anemia","Class") for(i in 1:25)( wdbc1[,i]<-gsub("[?]",NA, wdbc[,i]) ) [關鍵字]: 遺漏值 -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 140.116.1.141 ※ 文章網址: https://www.ptt.cc/bbs/R_Language/M.1521977692.A.9B7.html

03/25 19:39, 7年前 , 1F
which(is.na(x), arr.ind = TRUE)
03/25 19:39, 1F

03/25 19:39, 7年前 , 2F
會回傳NA所在的Row跟Column位置
03/25 19:39, 2F

03/25 19:50, 7年前 , 3F
THX
03/25 19:50, 3F
※ 編輯: jasonfghx (140.116.1.141), 03/25/2018 20:11:44

03/25 20:13, 7年前 , 4F
matrix還是data.frame?
03/25 20:13, 4F

03/25 20:13, 7年前 , 5F
matrix用gsub(x, "[-?]", "NA") 在抓=="NA"的位置
03/25 20:13, 5F

03/25 20:14, 7年前 , 6F
漏看還有空白 gsub(x, "[-? ]", "NA")
03/25 20:14, 6F

03/25 20:16, 7年前 , 7F
我放錯位置了Orz gsub("[-? ]", "NA", x)
03/25 20:16, 7F

03/25 20:16, 7年前 , 8F
如果是長度為零的話 x[nchar(x)] = "NA"
03/25 20:16, 8F

03/25 20:17, 7年前 , 9F
更正 x[nchar(x)==0] = "NA"
03/25 20:17, 9F

03/25 20:18, 7年前 , 10F
data.frame的話 就有很多做法了QQ
03/25 20:18, 10F

03/25 20:18, 7年前 , 11F
看你是用base的函數還是dplyr or data.table
03/25 20:18, 11F

03/25 20:19, 7年前 , 12F
不過data.frame的做法也一樣拉,是character的欄位
03/25 20:19, 12F

03/25 20:19, 7年前 , 13F
做上面那兩件事情,取代長度為0的跟取代特殊字元
03/25 20:19, 13F

03/25 20:20, 7年前 , 14F
另外,你如果是讀檔案的話,還可以用
03/25 20:20, 14F

03/25 20:20, 7年前 , 15F
read.table的na.strings去把你要變NA的字串直接轉NA
03/25 20:20, 15F

03/25 20:21, 7年前 , 16F

03/25 20:27, 7年前 , 17F
THX
03/25 20:27, 17F

03/25 20:27, 7年前 , 18F
我來學習一下
03/25 20:27, 18F
很感謝 其實我已經用到gsub 但是我是打"?" 難怪什麼東西都跑不出來 看到你的[] 我已經茅塞頓開 ※ 編輯: jasonfghx (140.116.1.141), 03/25/2018 20:32:44

03/25 20:56, 7年前 , 19F
經過gsub 原本是data frame的資料都變成char
03/25 20:56, 19F

03/25 20:56, 7年前 , 20F
這有解嗎?
03/25 20:56, 20F

03/25 21:17, 7年前 , 21F
我自己解決了
03/25 21:17, 21F
※ 編輯: jasonfghx (140.116.1.141), 03/25/2018 21:18:15
文章代碼(AID): #1QjubSct (R_Language)
文章代碼(AID): #1QjubSct (R_Language)