我試圖在R中使用tidyverse/dplyr包來處理數據,包括向在線API(從Altmetric)矢量化調用以使用mutate添加行。在R中使用dplyr/mutate修復不兼容類型錯誤
我可以創建的最小代碼重現錯誤是下面的代碼。我得到的錯誤「錯誤:不兼容的類型,期待一個數字矢量」
library(tidyverse)
library(jsonlite)
fromJSON_wrapper <- function(x,y) {
fromJSON(x)[[c(y)]]
}
toy <- tibble(
doi = c("10.1002/anie.201500251", "10.1080/19443994.2015.1005695", "10.1007/s13721-015-0095-0"),
url = c("https://api.altmetric.com/v1/doi/10.1002/anie.201500251", "https://api.altmetric.com/v1/doi/10.1080/19443994.2015.1005695", "https://api.altmetric.com/v1/doi/10.1080/19443994.2015.1005695")
)
extracted <- toy %>% rowwise() %>% mutate(score = fromJSON_wrapper(url,"score"))
提取下方作品單節比分,是否只是使用包裝上或在一排tibble,我不知道爲什麼代碼我的代碼不起作用。
fromJSON_wrapper("https://api.altmetric.com/v1/doi/10.1007/s13721-015-0095-0")
extracted <- toy[1,] %>% rowwise() %>% mutate(score = fromJSON_wrapper(url, "score"))
任何建議,將不勝感激。
使用'as.numeric(fromJSON(x)的[[C(Y)]])'會工作。問題是有時函數返回一個數值,而其他時間返回一個整數。它似乎不像'dplyr'喜歡把它們合併成一個數字列。 – MrFlick