我有很多文件,但让我们从文件1:N开始。每个文件中都有数据框。每个文件都包含相同的标头,但行号不同,其中包括某些错误和缺少的行号。我想从每个文件的特定列(temp_c)中获取平均值,并从中创建一个新的列表/数据框。下面的“ dat”是来自文件内容之一的一个示例。请帮我一下。
head(dat)
X pres_hpa hght_m temp_c dwpt_c relh_pct mixr_g_kg drct_deg sknt_knot thta_k thte_k thtv_k
1 1 1008.0 16 24.0 19.1 74 14.00 230 7 296.5 337.1 299.0
2 2 1007.8 18 24.0 19.1 74 14.00 230 7 296.5 337.1 299.0
3 3 1000.0 88 23.8 18.8 74 13.85 229 8 296.9 337.2 299.4
4 4 975.7 304 24.4 17.8 67 13.34 225 10 299.7 338.9 302.1
5 5 970.0 355 24.6 17.6 65 13.23 224 11 300.4 339.4 302.7
6 6 909.5 914 21.7 14.7 64 11.67 210 19 302.9 337.8 305.1
date from_hr to_hr
1 1981-11-01 0 0
2 1981-11-01 0 0
3 1981-11-01 0 0
4 1981-11-01 0 0
5 1981-11-01 0 0
6 1981-11-01 0 0
y = 1978
N <- 3
for (i in 1:N) {
yr = y +(as.numeric(i))
yr = as.character(yr)
p <- paste0("c:/Users/climatology/yr/",yr,".csv")
print(p)
#read.csv
dat <- read.csv(p,header = TRUE, stringsAsFactors = F)
#filter
dat_sub <- filter(dat, pres_hpa == 1000)
dat_sub <- filter(dat_sub, hght_m > 0)
dat_sub <- filter(dat_sub, temp_c > 0)
#grab Mean Value into data frame
#m = sapply(dat_sub$temp_c,function(i)mean(dat_sub$temp_c))
data[i] = data.frame(index = i, year = as.numeric(yr), temp =
mean(dat_sub$temp_c))
}
Error in data[i] <- data.frame(index = i, year = as.numeric(yr), temp = mean(dat_sub$temp_c)) :
object of type 'closure' is not subsettable
答案 0 :(得分:0)
数据不可子集,因为它是一个函数。您尝试选择数据的第一项,但是数据未在代码中定义(并且是函数btw)