看板 R_Language 關於我們 聯絡資訊
很抱歉又來問一些可能是很基礎的問題 我有五張相同格式的csv表 我想把他讀進來之計算之後 在每張表的最後多加兩個columns 所以我將他放進一個 list ( 我原本想用array,可是好像不行 ) 然後用一個迴圈去處理他 可是會出現以下的警告 Warning messages: 1: In df[i]$difftime <- difftime(dtTime, dtBase) : number of items to replace is not a multiple of replacement length 而且每張表好像都沒有被多加columns 請問我是有那裡弄錯了嗎 另外請問list與array的差別是? df = list( read.csv(file='worker05.csv', header=TRUE), read.csv(file='worker10.csv', header=TRUE), read.csv(file='worker15.csv', header=TRUE), read.csv(file='worker20.csv', header=TRUE), read.csv(file='worker25.csv', header=TRUE) ) for(i in 1:length(df)) { tmp <- substring( as.character(df[i]$time), 7,14) dtTime <- c(strptime( tmp, format="%H:%M:%S")) dtBase <- rep(dtTime[1], length(dtTime)) # 填入計算後的資料 df[i]$spentime <- difftime(dtTime, dtBase) df[i]$usage <- 100 - c(df[i]$idl) } -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 111.250.26.236
ching0629:我的習慣是,先指定一個空list: df=list(NULL) 01/29 15:11
ching0629:接著 df[[i]]<-read.csv... 等 01/29 15:12
ching0629:喔喔,應該是df[[i]],不是df[i]。 01/29 15:14
ching0629:然後確認一下讀進來的不是matrix而是dataframe 01/29 15:14
Wush978:你要做的事情沒問題,可行 01/29 15:56
Wush978:問題應該是difftime之後長度改變,造成不一致 01/29 15:57
Wush978:data.frame要求所有column長度一致 01/29 16:11
ireullin:可以了,是 [[i]]的問題,我沒注意到不好意思 01/29 18:07
ireullin:R版還真是溫暖的板阿,熱心的人很多...謝謝囉 01/29 18:08