Функция цикла для захвата среднего значения в новый фрейм данных возвращает ошибку подмножества - PullRequest
0 голосов
/ 06 октября 2018

У меня большой объем файла, но давайте начнем с файла 1: N.Внутри каждого файла есть фрейм данных.каждый файл содержит один и тот же заголовок, но отличается по количеству строк, включая некоторые ошибки и пропущенные номера здесь и там.Я хочу получить среднее значение из определенного столбца (temp_c) из каждого файла и создать новый список / фрейм данных из него.«Дата» ниже - это один из примеров содержимого файла.Пожалуйста, дайте мне руку ..

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

1 Ответ

0 голосов
/ 07 октября 2018

данные не являются подмножествами, потому что это функция.Вы пытаетесь выбрать первый элемент данных, но данные не определены в вашем коде (а это функция между прочим)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...