tpemartin / 109-2-app101

https://tpemartin.github.io/109-2-app101/
1 stars 10 forks source link

時光縮影 : 特定時間篩選 #49

Open Simmonslin opened 3 years ago

Simmonslin commented 3 years ago

Goal: 依使用者選定年份區間,篩出有事蹟出現在年份區間的古蹟。

所需檔案 : heritage_history.Rmd

任務指派 : @want180 、@Simmonslin ( 第二輔助 )

其他人: 協助製作

Simmonslin commented 3 years ago

https://github.com/tpemartin/109-2-app101/blob/main/weekly_progress/Simmons/year_track.Rmd

進度 : 能取出年份跟做出年份區間,但無法以取字元的方式篩出古蹟

tpemartin commented 3 years ago

This task is the most challenging one so far. You do your best and present how far you can get. The most important thing is to enjoy the hacking process.

chao87119 commented 3 years ago

@Simmonslin 無法執行那段可以用字元偵測嗎 ?

Simmonslin commented 3 years ago

@chao87119 沒辦法像python那樣用字元偵測,這就是最頭痛的地方,出來的bool值全都是False

chao87119 commented 3 years ago

@Simmonslin 不太懂意思,可以給一段code解釋一下嗎~

Simmonslin commented 3 years ago

@chao87119 是指str.subset ()嗎

chao87119 commented 3 years ago

@Simmonslin for-loop + str_detect 呢 不確定那段意思是不是這樣 , 還是要找在整個區間的

library(rstudioapi)
library(stringr)
chosen_year=showPrompt("年份輸入","請輸入年份",1982)
counter = 0
for(ii in heritageData$pastHistory){
    if(str_detect(ii,chosen_year)){
       counter = counter+1
       print(heritageData$caseName[counter])
    }
}
Simmonslin commented 3 years ago

# 無法執行

library(rstudioapi)

chosen_year=showPrompt("年份輸入","請輸入年份",1982)

a <-if (as.character(chosen_year) %in% heritageData$pastHistory){

  print(heritageData$pastHistory[as.character(chosen_year) %in% heritageData$pastHistory])

}

as.character(chosen_year) %in% heritageData$pastHistory

用這種方式找要考慮到空格 , 像"five" !=" five" 還在想要怎麼解決

Simmonslin commented 3 years ago

@chao87119 原來可以直接用str.detect( )解決

chao87119 commented 3 years ago

@Simmonslin 用 %in% 好像要整個字串都一樣才可以耶 不能是其中的一小部分

Simmonslin commented 3 years ago

@chao87119 可是好像會出現輸入值跟輸出值不符的情況,1902年不在嘉義仁武宮的資料內,但輸出結果卻包含仁武宮,應該還須考慮到1個 pasthistory 裡面不只有1個年份的狀況

(的確,不過昨天用 in 會有報錯的情況,今天再試看看好了)

chao87119 commented 3 years ago

@Simmonslin 我counter寫錯地方了

library(rstudioapi)
library(stringr)
chosen_year=showPrompt("年份輸入","請輸入年份",1982)
counter = 0
for(ii in heritageData$pastHistory){
    counter = counter+1
    if(str_detect(ii,chosen_year)){
       print(heritageData$caseName[counter])
    }
}

這樣你看看

Simmonslin commented 3 years ago

@chao87119 水喔,這樣只差做出年份區間了

chao87119 commented 3 years ago

@Simmonslin 加U , 我就不繼續做了

Simmonslin commented 3 years ago

@chao87119 okay

Simmonslin commented 3 years ago

https://github.com/tpemartin/109-2-app101/blob/main/weekly_progress/Simmons/year_track.Rmd

( 註: 請大家想出更好的方法 )

want180 commented 3 years ago

https://github.com/want180/109-2-app101/blob/main/weekly_progress/want180/heritage_history.Rmd

我只想出要怎麼抓出西元年分...但像「民國前14年」我就無法抓出來

Simmonslin commented 3 years ago

@want180 我是直接抓西元年份,不過好像民國前幾年後都會特別括弧標註西元年份?

want180 commented 3 years ago

@Simmonslin 有些資料沒有,我檢查時發現的