удалить строки с действительными числами - PullRequest
0 голосов
/ 02 октября 2018
bedrooms    bathrooms   sqft_living
3   1   1180
3   2.25    2570
2   1   770
4   3   1960
3   2   1680
4   4.5 5420
3   2.25    1715
3   1.5 1060
3   1   1780
3   2.5 1890

выше - набор данных.Как удалить / удалить всю строку с действительным числом в любом атрибуте?ответ должен выглядеть следующим образом

bedrooms    bathrooms   sqft_living
5   2   1810
4   3   2950
3   2   1890
4   1   1600
2   1   1200
3   1   1250

1 Ответ

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

Надеюсь, это поможет.Сначала я проверю каждый столбец, используя lapply, чтобы проверить, какие элементы равны себе после округления (это целые числа).Затем я суммирую результат построчно, используя Reduce.Если вывод Reduce равен числу столбцов в этом df, это означает, что все значения были целыми числами:

dt <- read.table(text = "bedrooms    bathrooms   sqft_living
3   1   1180
3   2.25    2570
2   1   770
4   3   1960
3   2   1680
4   4.5 5420
3   2.25    1715
3   1.5 1060
3   1   1780
3   2.5 1890", header = TRUE)

idxs <- Reduce("+", lapply(dt, function(x) round(x) == x)) == ncol(dt)
dt[idxs,]

#  bedrooms bathrooms sqft_living
# 1        3         1        1180
# 3        2         1         770
# 4        4         3        1960
# 5        3         2        1680
# 9        3         1        1780
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...