我在这里做错了什么?我的R代码:
u <- "http://www.cbr.ru/scripts/xml_depo.asp?date_req1=01/07/2001&date_req2=22/12/2020"
f <- xml2::read_xml(u)
doc <- xml2::as_list(f)
d <- lapply(doc$Deposit,
function(x) data.frame(Overnight = x$Overnight[[1]],
Tom_next = x$`Tom-next`[[1]],
Spot_next = x$`Spot-next`[[1]],
Spot_week = x$`Spot-week`[[1]],
P2weeks = x$P2weeks[[1]],
Spot_2week = x$`Spot-2week`[[1]],
P1month = x$P1month[[1]],
P3month = x$P3month[[1]],
Date = attr(x, "Date")))
d <- dplyr::bind_rows(d)
它在d <- lapply(doc$Deposit,...
的行处中断,说Error in x$Overnight[[1]] : subscript out of bounds
。
发布于 2020-12-23 14:26:29
我认为你应该把d <- lapply(doc$Deposit,...
改成d <- lapply(doc$Deposit$Record,...
请尝试
d <- lapply(doc$Deposit$Record,
function(x) data.frame(Overnight = x$Overnight[[1]],
Tom_next = x$`Tom-next`[[1]],
Spot_next = x$`Spot-next`[[1]],
Spot_week = x$`Spot-week`[[1]],
P2weeks = x$P2weeks[[1]],
Spot_2week = x$`Spot-2week`[[1]],
P1month = x$P1month[[1]],
P3month = x$P3month[[1]],
Date = attr(x, "Date")))
d <- dplyr::bind_rows(d)
编辑:
很抱歉,在没有进一步检查的情况下,我仓促地提出了这一点。我建议这样做:
d <- lapply(doc$Deposit$Record, cbind)
d <- as.data.frame(t(unlist(d)))
d
# Overnight Tom-next Spot-next P1week Spot-week P2weeks Spot-2weeks P1month P3month
# 1 2 2,3 2,5 7 7,5 8,5 9 10 12
https://stackoverflow.com/questions/65424748
复制