Как я могу исключить указанные c дней ниже определенной температуры в объединенных данных? - PullRequest
0 голосов
/ 27 апреля 2020

Пожалуйста, не возражайте, если этот вопрос очень базовый c. Я нахожусь в процессе обучения R.

У меня есть объединенный набор данных за летние месяцы на 2000-2010 годы. Я хочу исключить 9 дней ниже 9 градусов Цельсия из всех данных.

Обновление

У меня есть значения температуры в моем наборе данных как;

 [1]  9.4 10.2 11.2 12.4 12.6 13.1 13.8 14.3 12.1 10.3 11.0 10.6  9.6 10.5 13.2 14.8
[17] 14.4 15.3 15.9 14.8 14.1 15.0 18.0 19.8 19.9 18.2 16.2 16.2 17.9 19.3 19.4 18.7
[33] 18.5 21.1 23.2 22.7 22.4 22.5 22.6 21.3 19.9 19.5 18.4 17.7 18.3 20.2 21.6 22.0

Я хочу удалить все 9 значений до 9 градусов Цельсия в каждой точке моего набора данных.

Мне предложили использовать этот скрипт:

cleandata<-workdata[-sample(which(workdata$tempd0d1 < 9), 9), ]

Я использовал, но он не работает. Я получаю те же значения для tempd0d1 (переменная температуры).

cleandata$tempd0d1
1]  9.4 10.2 11.2 12.4 12.6 13.1 13.8 14.3 12.1 10.3 11.0 10.6  9.6 10.5 13.2 14.8
[17] 14.4 15.3 15.9 14.8 14.1 15.0 18.0 19.8 19.9 18.2 16.2 16.2 17.9 19.3 19.4 18.7
[33] 18.5 21.1 23.2 22.7 22.4 22.5 22.6 21.3 19.9 19.5 18.4 17.7 18.3 20.2 21.6 22.0

любая быстрая помощь будет оценена.

Ответы [ 2 ]

0 голосов
/ 27 апреля 2020

Может быть, это может помочь. Вы можете сделать это без каких-либо дополнительных пакетов.

Вы можете выбрать 9 дней из подмножества, где temp <9, а затем удалить эти строки: </p>

set.seed(123)

df[-sample(which(df$temp < 9), 9), ]

Вывод

 [1] 15 15 14 10  2  6 11 14  9 10 11  3 11  9 12  9  9 13  3  8 10 10  9 14  4 14  1 11  7  5 12
[32] 15 10 13  9  9 10  7 11 12  5

Данные

df <- structure(list(temp = c(15L, 15L, 3L, 14L, 3L, 10L, 2L, 6L, 11L, 
5L, 4L, 14L, 6L, 9L, 10L, 11L, 5L, 3L, 11L, 9L, 12L, 9L, 9L, 
13L, 3L, 8L, 10L, 7L, 10L, 9L, 14L, 3L, 4L, 14L, 1L, 11L, 7L, 
5L, 12L, 15L, 10L, 13L, 7L, 9L, 9L, 10L, 7L, 11L, 12L, 5L)), class = "data.frame", row.names = c(NA, 
-50L))

df$temp
[1] 15 15  3 14  3 10  2  6 11  5  4 14  6  9 10 11  5  3 11  9 12  9  9 13  3  8 10  7 10  9 14
[32] 3  4 14  1 11  7  5 12 15 10 13  7  9  9 10  7 11 12  5
0 голосов
/ 27 апреля 2020

Если вы просто хотите удалить их, используйте:

datasetClean <- dataset[dataset$temperature > 9,]

Крайне важно, чтобы вы сначала преобразовали столбец температуры в числовой формат c. Так же, как

dataset$temperature <- as.numeric(dataset$temperature)`

Надеюсь, что это поможет с вашей проблемой.

...