質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.35%
R

R言語は、「S言語」をオープンソースとして実装なおした、統計解析向けのプログラミング言語です。 計算がとても速くグラフィックも充実しているため、数値計算に向いています。 文法的には、統計解析部分はS言語を参考にしており、データ処理部分はSchemeの影響を受けています。 世界中の専門家が開発に関わり、日々新しい手法やアルゴリズムが追加されています。

コードレビュー

コードレビューは、ソフトウェア開発の一工程で、 ソースコードの検査を行い、開発工程で見過ごされた誤りを検出する事で、 ソフトウェア品質を高めるためのものです。

API

APIはApplication Programming Interfaceの略です。APIはプログラムにリクエストされるサービスがどのように動作するかを、デベロッパーが定めたものです。

Q&A

1回答

690閲覧

SpotifyAPIによるスクレイピングのコードレビュー

pierra

総合スコア2

R

R言語は、「S言語」をオープンソースとして実装なおした、統計解析向けのプログラミング言語です。 計算がとても速くグラフィックも充実しているため、数値計算に向いています。 文法的には、統計解析部分はS言語を参考にしており、データ処理部分はSchemeの影響を受けています。 世界中の専門家が開発に関わり、日々新しい手法やアルゴリズムが追加されています。

コードレビュー

コードレビューは、ソフトウェア開発の一工程で、 ソースコードの検査を行い、開発工程で見過ごされた誤りを検出する事で、 ソフトウェア品質を高めるためのものです。

API

APIはApplication Programming Interfaceの略です。APIはプログラムにリクエストされるサービスがどのように動作するかを、デベロッパーが定めたものです。

0グッド

0クリップ

投稿2021/11/05 08:34

編集2021/11/06 04:14

下記のリンク先に示されていたスクリプトを参考に、ジャンル(genre)ごとに50曲ずつ曲名を取得してジャンル名とともにデータフレームにまとめようとしたところ、以下のエラーメッセージが発生しました。ご一考頂けますと幸いです。
(引用元:リンク内容

エラーメッセージ

Error : object 'res' not found

該当のソースコード

R

1 genres <- RETRY('GET', url = 'https://api.spotify.com/v1/recommendations/available-genre-seeds', query = list(access_token = get_spotify_access_token(), limit=150), quiet = TRUE) %>% content() 2 3 m <- do.call(rbind,lapply(genres$genre, function(x) if(is.null(x)) NA else c(x))) 4 genres_df <- as.data.frame(m) 5 6 colnames(genres_df) <- c("genre") 7 8 get_genre_track <- function(genre){ 9 track_check <- RETRY('GET', url = paste0("https://api.spotify.com/v1/search?query=genre%3A",genre), query = list(type="track",limit = 50, offset = 0, access_token = get_spotify_access_token()), quiet = TRUE) %>% content() 10 11 track_count <- 50 12 13 df <- map_df(1:length(res$tracks$items), function(this_row) { 14 tryCatch({ 15 this_track <- res$tracks$items[[this_row]] 16 name <- this_track$name 17 genre <- genre 18 list(name = name, genre = genre) 19 }, error = function(e){ 20 NULL 21 }) 22 }) 23 } 24 tracks_df <- lapply(genres_df$genre, get_genre_track) %>% bind_rows() 25 tracks_df 26}

試したこと

ソースコード中のresを消去したところ、unexpected '$'と表示されました。さらに$を消すと、今度はobject 'tracks' not foundと表示されました。

補足情報(FW/ツールのバージョンなど)

必要なライブラリのインストールやユーザー情報は省略しています。
環境:Exploratory Public,言語:R

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答1

0

定義されてないオブジェクトresをいきなり使おうとするからエラーが出ていますね。お手本にしたはずのサイトに提示されているスクリプトと見比べてみればわかるはずです。

投稿2021/11/05 08:58

KojiDoi

総合スコア13692

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

pierra

2021/11/05 09:38 編集

回答ありがとうございます。引用元のスクリプトには繰り返し処理があったため、その部分を除きたいのですが、どの部分を書き換えれば良いのでしょうか?
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだベストアンサーが選ばれていません

会員登録して回答してみよう

アカウントをお持ちの方は

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.35%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問