我试图在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