Проблемы с подмножеством в R с использованием определенного значения - PullRequest
0 голосов
/ 28 апреля 2018

Я относительно новичок в R и столкнулся со странной проблемой. Я пытаюсь установить подмножество фрейма данных, однако он не работает, если значение, используемое для поднабора, введено определенным образом.

Например, это исходный фрейм данных:

      X time_mean temp_mean covas_mean
1  1426     28.50     45.02         77
2  1427     28.52     45.18         77
3  1428     28.54     45.06         77
4  1429     28.56     45.01         77
5  1430     28.58     45.01         77
6  1431     28.60     45.04         77
7  1432     28.62     44.97         77
8  1433     28.64     45.02         77
9  1434     28.66     44.91         77
10 1435     28.68     44.99         76
11 1436     28.70     44.77         76

Если я попытаюсь создать подмножество с использованием этого кода, произойдет сбой при создании пустого фрейма данных:

# This does not work
var <- 23 + 0.7 + 0.9
subset(data, time_mean == var+4.00)
[1] X          time_mean  temp_mean  covas_mean
<0 rows> (or 0-length row.names)

Если я подмножество, как это, это работает:

# This works
var <- 23 + 0.7 + 0.7 + 0.1 + 0.1
subset(data, time_mean == var+4.00)
     X time_mean temp_mean covas_mean
6 1431      28.6     45.04         77

Есть идеи, что происходит? Спасибо.

R версия 3.5.0 (2018-04-23) macOS 10.13.4 (17E202) (x86_64, darwin15.6.0)

Ответы [ 2 ]

0 голосов
/ 28 апреля 2018

FAQ 7.31 Или что должен знать каждый компьютерщик о числах с плавающей запятой

0 голосов
/ 28 апреля 2018

Кажется, это проблема с плавающей запятой. Вы можете использовать round и использовать 2 цифры, и subset будет работать.

> subset(df, time_mean == round(var+4.00, 2))
     X time_mean temp_mean covas_mean
6 1431      28.6     45.04         77
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...