Sendkeys не работает в транспортире из-за & ldquo; ошибки селена webdriver обещание отсрочки & rdquo;

Если мы решили использовать функцию subset, нам нужно следить:

For ordinary vectors, the result is simply ‘x[subset & !is.na(subset)]’.

Таким образом, сохраняются только значения, отличные от NA.

Если вы хотите чтобы сохранить NA случаи, используйте логические или условия, чтобы сообщить R не отбрасывать NA случаи:

subset(df1, Height < 40 | is.na(Height))
# or `df1[df1$Height < 40 | is.na(df1$Height), ]`

Не использовать напрямую (будет объяснено в ближайшее время):

df2 <- df1[df1$Height < 40, ]

Пример

df1 <- data.frame(Height = c(NA, 2, 4, NA, 50, 60), y = 1:6)

subset(df1, Height < 40 | is.na(Height))

#  Height y
#1     NA 1
#2      2 2
#3      4 3
#4     NA 4

df1[df1$Height < 40, ]

#  Height  y
#1     NA NA
#2      2  2
#3      4  3
#4     NA NA

Причина, по которой последнее не удается, заключается в том, что индексирование с помощью NA дает NA. Рассмотрим этот простой пример с вектором:

x <- 1:4
ind <- c(NA, TRUE, NA, FALSE)
x[ind]
# [1] NA  2 NA

Нам нужно как-то заменить те NA на TRUE. Самый простой способ - добавить другое «или» условие is.na(ind):

x[ind | is.na(ind)]
# [1] 1 2 3

Это именно то, что произойдет в вашей ситуации. Если ваш Height содержит NA, тогда логическая операция Height < 40 заканчивается комбинацией TRUE / FALSE / NA, поэтому нам нужно заменить NA на TRUE, как указано выше.

0
задан Fury 28 March 2019 в 07:05
поделиться