[問題] 數據轉換 字元到數字 改y軸 指令

看板R_Language作者 (....)時間9年前 (2015/07/11 22:46), 9年前編輯推噓3(3023)
留言26則, 3人參與, 最新討論串1/1
[軟體熟悉度]: 入門 [問題敘述]: 我有一組數據 data <- read.csv("OLFdata.csv", header = T) data[data == "Null"] <- NA data$date <- as.POSIXct(strptime(data$date,format = "%m/%d/%Y %H:%M",tz="GMT")) 整理之後發現從第2 到 第23column的數據都被讀成字元 上網找到了 data$a <- as.numeric(as.character(data$a)) 這個可以幫我轉成數字 於是我想一口氣完成轉換 我嘗試了 data[2:23] <- as.numeric(as.character(data[2:23]) Warning message: NAs introduced by coercion 全部都變成NA 有辦法一次做完嗎? 目前我已經一個一個轉好了 我畫了一個 multiple y vs x的圖 想要改 y軸 用aixs都沒反應 我嘗試用 axis(side = 2, col = 'darkgreen') 類似這樣的指令 就跑不出來 整個 Rstudio停在那邊 我要強制停止 R-3.2.1 Rstudio-0.99.451 windows OS 或者這樣說 我要畫 multiple Y vs X dailymean = aggregate(data, list(Date=as.Date(data$date)),mean,na.rm=T) xyplot(dailymean$a ~ dailymean$Date, type="l", ylab = "a") axis(2,pretty(range(dailymean$a))) par(new=T) xyplot(dailymean$b ~ dailymean$Date, type="l", ylab = " ") axis(4,pretty(range(dailymean$b))) http://stackoverflow.com/questions/9627389/xy-plot-with-multiple-y-scales 參考這個下去做的 但是 axis 都沒反應 我想說改個顏色看看 axis(2, col="darkgreen") 看 axis這個function 正常嗎 結果 process 轉了十幾分鐘 沒回應 我就手動關掉了 改個軸 會那麼吃資源嗎? 謝謝 -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 107.15.112.169 ※ 文章網址: https://www.ptt.cc/bbs/R_Language/M.1436625985.A.192.html ※ 編輯: dreler1 (107.15.112.169), 07/11/2015 23:26:39 ※ 編輯: dreler1 (107.15.112.169), 07/11/2015 23:40:50

07/11 23:46, , 1F
少一個 ,
07/11 23:46, 1F

07/11 23:47, , 2F
要用data[,2:23]
07/11 23:47, 2F

07/11 23:48, , 3F
data[,2:23] <- sapply(data[,2:23]), function(x){
07/11 23:48, 3F

07/11 23:49, , 4F
as.numeric(as.character(x))}
07/11 23:49, 4F

07/11 23:49, , 5F
)
07/11 23:49, 5F

07/11 23:57, , 6F
直接將data.frame用as.character會coerce成atomic vector
07/11 23:57, 6F

07/11 23:58, , 7F
data[,2:23] = as.numeric(as.matrix(
07/11 23:58, 7F

07/11 23:58, , 8F
as.character(a[,2:23])))
07/11 23:58, 8F

07/11 23:59, , 9F
例如 str(as.character(iris))顯示長度為5的字串向量,非
07/11 23:59, 9F

07/11 23:59, , 10F
data.frame
07/11 23:59, 10F

07/12 00:01, , 11F
無視我的推文 推錯了(攤手
07/12 00:01, 11F

07/12 00:02, , 12F
比較建議read.csv加上stringsAsFactors=FALSE
07/12 00:02, 12F

07/12 00:03, , 13F
全部都是character可以直接as.numeric(as.matrix(轉
07/12 00:03, 13F

07/12 00:04, , 14F
或是乾脆在read.csv指定colClasses
07/12 00:04, 14F

07/12 00:07, , 15F
謝謝 那對於 axis改軸 可能是哪邊問題嗎?
07/12 00:07, 15F

07/12 00:07, , 16F
apply系列函數等於幫你做"一個一個轉"的動作喔~
07/12 00:07, 16F

07/12 00:08, , 17F
07/12 00:08, 17F

07/12 00:11, , 18F
一個個轉 你等於一次次複製data.frame
07/12 00:11, 18F

07/12 00:11, , 19F
想辦法一次解決吧
07/12 00:11, 19F

07/12 00:12, , 20F
axis問題 你要全部PO上來才知道 這樣看不出來
07/12 00:12, 20F
※ 編輯: dreler1 (107.15.112.169), 07/12/2015 00:22:41

07/12 00:41, , 21F
xyplot是grid based不能用asxi
07/12 00:41, 21F

07/12 00:42, , 22F
stackoverflow上是用plot
07/12 00:42, 22F

07/12 00:43, , 23F
xyplot要改axis要在panel裡面增加panel.axis 有需要
07/12 00:43, 23F

07/12 00:43, , 24F
再改給你看
07/12 00:43, 24F

07/12 00:44, , 25F
不然就考慮latticeExtra的doubleYAxis
07/12 00:44, 25F

07/12 00:52, , 26F
我自己試試看先 謝謝了
07/12 00:52, 26F
※ 編輯: dreler1 (107.15.112.169), 07/12/2015 04:12:06 ※ 編輯: dreler1 (107.15.112.169), 07/12/2015 04:14:55 我最後用 > cols <- names(data) # names of variables > cols <- cols[-1] #exclude date > cols <- cols[-23:] #exclude rest > data[cols] <- sapply(data[cols],as.numeric) # covert data to numeric data 完成 現在來試試看 panel的部分 XD ※ 編輯: dreler1 (107.15.112.169), 07/12/2015 04:32:56
文章代碼(AID): #1LeIn16I (R_Language)
文章代碼(AID): #1LeIn16I (R_Language)