→ andrew43: 先用str()看清楚get_channel_stats()回傳什麼東西 06/10 01:04
→ andrew43: 我沒app id不能幫你試,但我猜你只是不熟悉回傳的結構 06/10 01:04
→ iambakr: 感謝Andrew大回覆! 其實我有str()看回傳值是list。但我 06/10 01:28
→ iambakr: 卡在試過轉字串,在第一步回傳是list就停住了... 06/10 01:29
→ iambakr: 所以才想說有沒有什麼使用方式是可以指定list的位置後 06/10 01:30
→ iambakr: 再轉成字串或是數值。目前就是卡在這最關鍵的一步 @@ 06/10 01:31
→ locka: 請問可以貼一下回傳的list範例嗎,值可以是假的,重點是結 06/10 04:11
→ locka: 構 06/10 04:11
→ locka: 類似這樣子可以嗎?對了id那行應該是id <- c(id, snippet[1 06/10 04:35
→ locka: ]) 06/10 04:35
Hi 感謝L大
我從tuber抓下來的 get_channel_stats(channel_id = xxxxx) List
長這個樣子 --> https://imgur.com/a/gfnXpVz
第二張圖的螢光部分就是我想抓的資訊
不過我照L大的方式抓,沒有成功抓下來country與id
get_channel_stats底下的snippet與statistics,分別又是另一個list
所以我一直沒辦法成功抓到想要的資訊.....
※ 編輯: iambakr (111.71.71.107 臺灣), 06/10/2020 12:36:19
→ locka: 我沒有實際操作過這個套件,只是看你code裡面存取get_chann 06/10 13:06
→ locka: el_stat(id)[4][7],猜測你想要的是第4個element裡面的第7 06/10 13:06
→ locka: 個element,裡面應該是id資訊,這樣理解是對的嗎? 06/10 13:06
→ locka: 喔抱歉剛剛沒點進去圖所以沒看到螢光部分,感覺就是資料結 06/10 13:15
→ locka: 構的存取問題,多試幾次慢慢拆囉。ps. 如果那行改成 get_ch 06/10 13:15
→ locka: annel_stats(x)$snippet$country 抓的出國家(AU)嗎? 06/10 13:15
→ locka: 或是 snippet[[7]] 06/10 13:17
我有這樣試過,但最大的問題是:
每次執行時,都會跑出如下面第二張圖的錯誤資訊
https://imgur.com/a/h6MqOvM
好像是因為都會一次跑出下面資訊
Channel Title: Hillsong Worship
No. of Views: 2102542413
No. of Subscribers: 5750000
No. of Videos: 618
※ 編輯: iambakr (111.71.71.107 臺灣), 06/10/2020 15:21:35
→ andrew43: 可以的話把整個get_channel_stat回傳給saveRDS把檔案貼 06/10 15:41
→ andrew43: 在雲端。 06/10 15:41
→ andrew43: 沒辦法重現你的問題實在不方便解答 06/10 15:42
→ locka: 同意樓上大大~ 06/10 18:05
感謝樓上兩位大大
請見下面連結儲存get_channel_stats的RDS檔案
https://1drv.ms/u/s!Ajmg_0PpohUJgzQrQMbckApP5PTK?e=rdPkiE
※ 編輯: iambakr (111.250.82.64 臺灣), 06/11/2020 00:48:37
→ andrew43: rds讀入後叫x,用x$snippet$localized$title 06/11 09:43
→ andrew43: 和x$snippet$country就行了吧 06/11 09:43
→ andrew43: x$snippet[[1]]等同x$snippet[1][[1]]但不同於 06/11 09:48
→ andrew43: x$snippet[1],這大概是你卡關的關鍵 06/11 09:48
→ andrew43: 下次你不確定成不成的時候,可先檢查要取出的一個字串 06/11 09:55
→ andrew43: 是不是長度為1的character vector就可以避免了。 06/11 09:56
推 locka: 還有我發現可能還有一個地方有問題:大大你 youtube <- dat 06/12 00:14
→ locka: a.frame() 只是宣告了一個空的dataframe沒有告訴他有多少筆 06/12 00:14
→ locka: 資料,這樣後面 youtube$country[i]可能找不到東西,後面錯 06/12 00:14
→ locka: 誤訊息應該是在指這件事。如果要用for迴圈的話請一開始就宣 06/12 00:14
→ locka: 告好list或dataframe的大小,不然就用 list <- c(list, ele 06/12 00:14
→ locka: ment)的方式append 06/12 00:14