【发布时间】:2021-03-01 04:10:14
【问题描述】:
我正在尝试将单个县作为数据框从列表(由所有县的数据组成)中提取为 R 中的单独数据框。我的代码如下,为了便于说明,我将进入 第 1 步(将数据从 URL 提取到列表 - 这部分效果很好) 和 第 2 步(从列表中提取单个 data.frames - 这效果不佳,并给出了一个只有最后一个列表项)
## Step 1: Extract data from URL
library(data.table)
# List of counties (just a sample here)
x <- data.frame(county = c("12001", "12003", "12005"))
idx <- x$county
#Extract data from URL for list of counties
qcew_q1 <- lapply((1:nrow(x)),function(area) {
url <- "http://data.bls.gov/cew/data/api/YEAR/QTR/area/AREA.csv"
url <- sub("YEAR", 2020, url, ignore.case=FALSE)
url <- sub("QTR", 1, url, ignore.case=FALSE)
url <- sub("AREA",idx[area] , url, ignore.case=FALSE)
fread(url, header = TRUE, sep = ",", quote="\"", dec=".", na.strings="", skip=0)
}
)
一旦我将数据从 URL 提取到列表中,我就会尝试将各个县提取为单独的数据框。这是导致问题的部分,它只给出最后一项并将其写入列表而不是 data.frame。任何见解将不胜感激。
## Step 2: Extract data from step 1 as separate data frames.
## Writes only last list (12005) to another list.
#Using For statement
for(c in 1:nrow(x)){
for(i in 1:3){
q1_idx[c] <- qcew_q1[i]
}
}
# Using lapply
lapply(1:nrow(x),function(cnty){
for(i in 1:3){
q1_idx[cnty] <- qcew_q1[i]
}
})
任何有关如何解决此问题的见解将不胜感激。
TIA,
克里希南
【问题讨论】: