Re: [問題] 資料集搜尋

作者: celestialgod (天)   2016-03-24 20:08:17
※ 引述《spiderway (spiderway)》之銘言:
: [問題類型]:
: 程式諮詢(我想用R 做某件事情,但是我不知道要怎麼用R 寫出來)
: [軟體熟悉度]:
: 使用者(已經有用R 大概半年)
: [問題敘述]:
: 有些基本的問題想很久都解決不了,懇請各位大大協助指導
: 1.
: e.g.,我有一個長度不一的txt
: 1 2 3 4 5 6 7 8 9 10
: 2 3 3 3 6 7 8
: 1 3 4 5 6
: 我用下列方法變成一個list,但是假如txt檔的量很大,像我只會一個一個打,有甚麼
: 辦法可以處理
: x <- readLines("dat.txt")
: list(x[1],x[2],x[3])
不知道你是不是要這個:
(x <- as.list(readLines(textConnection("1 2 3 4 5 6 7 8 9 10
2 3 3 3 6 7 8
1 3 4 5 6"))))
# [[1]]
# [1] "1 2 3 4 5 6 7 8 9 10"
#
# [[2]]
# [1] "2 3 3 3 6 7 8"
#
# [[3]]
# [1] "1 3 4 5 6"
: 2. 這個問題是我主要想問的,根據上面那個list我想要搜尋出有query=c(3,3,3)的那一個
: index,就上面來看就是第二個,我換個方式表達像是假如我把上面那個變成table,我想要
: 搜尋某三行符合是query的index,像我目前是直接開檔案用ctrl+f一個一個比非常花時間
: X1 X2 X3 X4 X5 X6 X7 X8 X9 X10
: 1 1 2 3 4 5 6 7 8 9 10
: 2 2 3* 3* 3* 6 7 8 NA NA NA
: 3 1 3 4 5 6 NA NA NA NA NA
: 以上是我兩個問題,謝謝
library(zoo)
x2 <- lapply(x, function(y) as.integer(strsplit(y, "\\s")[[1]]))
query = c(3,3,3)
sapply(x2, function(y){
any(rollapply(y, 3, function(v) all(v == query)))
})
# [1] FALSE TRUE FALSE
: [環境敘述]:
: R version 3.2.2 (2015-08-14)
: Platform: x86_64-w64-mingw32/x64 (64-bit)
: Running under: Windows 7 x64 (build 7601) Service Pack 1
: [關鍵字]:
: 選擇性,也許未來有用
作者: spiderway (spiderway)   2016-03-26 00:45:00
謝謝~~研究中

Links booklink

Contact Us: admin [ a t ] ucptt.com