看板 R_Language 關於我們 聯絡資訊
假如原始資料檔(以4列為一組為例)如下 #### data.txt begin #### time1 a = 5 b = 70 c = "rest" time2 a = 8 b = 15 c = "rest_2" #### data.txt end #### 我用字串的角度把資料取出再排入 data frame。 重點在於從各列的規格寫成 regular expression。 library(magrittr) txt <- readLines("data.txt", n = -1) n <- length(txt) ncol <- 4 # 之後自行修改成16 nrow <- n / ncol data.frame( time = txt[grep("^time[[:digit:]]+", txt)], a = gsub("^a = ([[:digit:]]+)", "\\1", txt[grepl("^a = [[:digit:]]", txt)]) %>% as.numeric, b = gsub("^b = ([[:digit:]]+)", "\\1", txt[grepl("^b = [[:digit:]]", txt)]) %>% as.numeric, c = gsub("^c = \"([[:print:]]+)\"", "\\1", txt[grepl("^c = \"[[:print:]]+\"", txt)]) ) 可得 data frame 'data.frame': 2 obs. of 4 variables: $ time: Factor w/ 2 levels "time1","time2": 1 2 $ a : num 5 8 $ b : num 70 15 $ c : Factor w/ 2 levels "rest","rest_2": 1 2 ※ 引述《playaround (打滾)》之銘言: : [問題類型]: : N*1的資料 轉換成M*16 : [軟體熟悉度]: : R初學 : [問題敘述]: : 原始資料(csv檔)資料大致是這樣: : time1 : a = 5 : b = 70 : c = "rest" : ... : ... : time2 : a = 8 : b = 15 : c = "rest_2" : ... : ... : 想要以16列為單位整理成M*16的矩陣 : 第一列是col標題 : 和每列前面的a,b,c等是row標題 : 類似這樣: : time a b c ... : time1 5 70 "rest" : time2 8 15 "rest_2" : 有找一些指令好像都是以同col內同樣資料來分組 : 所以不太知道目前需要做的這功能要怎麼處理 : 手機發文,排版請見諒 : 感謝大家 : ----- : Sent from JPTT on my Xiaomi MI 5. -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 60.248.222.1 ※ 文章網址: https://www.ptt.cc/bbs/R_Language/M.1503399605.A.EEB.html