library(XML)
library(plyr)
xmlfile=xmlParse("http://opendata.cwb.gov.tw/govdownload?dataid=F-D0047-089&authorizationkey=rdec-key-123-45678-011121314")
xmltop = xmlRoot(xmlfile) #gives content of root
T01 <- xmlToList(xmltop[[9]][[3]][[5]])
T02 <- xmlToList(xmltop[[9]][[4]][[5]])
T03 <- xmlToList(xmltop[[9]][[5]][[5]])
T04 <- xmlToList(xmltop[[9]][[6]][[5]])
T05 <- xmlToList(xmltop[[9]][[7]][[5]])
T01 <-ldply(T01, data.frame)
T02 <-ldply(T02, data.frame)
T03 <-ldply(T03, data.frame)
T04 <-ldply(T04, data.frame)
T05 <-ldply(T05, data.frame)
taiwan_tt <- data.frame(T01,T02,T03,T04,T05)
如何简化此代码? 我试着用这个。
T01 <- xmlToList(xmltop[[9]][[seq(3,7)]][[5]])
T01 <-ldply(T01, data.frame)
但它没有用 请帮帮我
答案 0 :(得分:1)
看看这是否能让你更接近你需要的东西。
# This is your code, commented out
#library(XML)
#library(plyr)
#xmlfile=xmlParse("http://opendata.cwb.gov.tw/govdownload?dataid=F-D0047-089&authorizationkey=rdec-key-123-45678-011121314")
#xmltop = xmlRoot(xmlfile) #gives content of root
现在为了简化你已经问过了。其中一部分至少有一些。
T0_list <- lapply(3:7, function(i) xmlToList(xmltop[[9]][[i]][[5]]))
names(T0_list) <- paste0('T0', 1:5)
T0_list <- ldply(T0_list, data.frame)
T0_list <- lapply(T0_list, function(T0){
T0 <- lapply(T0, function(x) sub("\n", "", x, fixed = TRUE))
T0 <- as.data.frame(T0)
T0
})
列表T0_list
现在有你帖子的T01
到T05
,并清除了换行符'\n'
。