Нарезка нескольких столбцов в R

В python использование pandas для нарезки столбца, где data — набор данных, а «pickup_latitude» — столбец, следующая строка будет работать

data = data[(data['pickup_latitude']<=90) & (data['pickup_latitude']>=-90)]

Что будет эквивалентно приведенному выше в R, а также для нескольких столбцов с разным диапазоном значений?

То же самое, но добавьте запятую в конце, чтобы показать, что вы индексируете строки: data = data[(data['pickup_latitude']<=90) & (data['pickup_latitude']>=-90), ]

Gregor Thomas 22.05.2019 14:40

или используйте команду subset.

G. Grothendieck 22.05.2019 14:44
3 метода стилизации элементов HTML
3 метода стилизации элементов HTML
Когда дело доходит до применения какого-либо стиля к нашему HTML, существует три подхода: встроенный, внутренний и внешний. Предпочтительным обычно...
Формы c голосовым вводом в React с помощью Speechly
Формы c голосовым вводом в React с помощью Speechly
Пытались ли вы когда-нибудь заполнить веб-форму в области электронной коммерции, которая требует много кликов и выбора? Вас попросят заполнить дату,...
Стилизация и валидация html-формы без использования JavaScript (только HTML/CSS)
Стилизация и валидация html-формы без использования JavaScript (только HTML/CSS)
Будучи разработчиком веб-приложений, легко впасть в заблуждение, считая, что приложение без JavaScript не имеет права на жизнь. Нам становится удобно...
Flatpickr: простой модуль календаря для вашего приложения на React
Flatpickr: простой модуль календаря для вашего приложения на React
Если вы ищете пакет для быстрой интеграции календаря с выбором даты в ваше приложения, то библиотека Flatpickr отлично справится с этой задачей....
В чем разница между Promise и Observable?
В чем разница между Promise и Observable?
Разберитесь в этом вопросе, и вы значительно повысите уровень своей компетенции.
Что такое cURL в PHP? Встроенные функции и пример GET запроса
Что такое cURL в PHP? Встроенные функции и пример GET запроса
Клиент для URL-адресов, cURL, позволяет взаимодействовать с множеством различных серверов по множеству различных протоколов с синтаксисом URL.
0
2
3 638
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

То же самое будет работать, но вам нужно добавить запятую в конце, чтобы показать, что вы индексируете строки:

data = data[(data['pickup_latitude']<=90) & (data['pickup_latitude']>=-90), ]

Например, на встроенных данных mtcars:

> mt = mtcars[mtcars['mpg'] <= 20 & mtcars['mpg'] >= 15, ]
> mt
                   mpg cyl  disp  hp drat    wt  qsec vs am gear carb
Hornet Sportabout 18.7   8 360.0 175 3.15 3.440 17.02  0  0    3    2
Valiant           18.1   6 225.0 105 2.76 3.460 20.22  1  0    3    1
Merc 280          19.2   6 167.6 123 3.92 3.440 18.30  1  0    4    4
Merc 280C         17.8   6 167.6 123 3.92 3.440 18.90  1  0    4    4
Merc 450SE        16.4   8 275.8 180 3.07 4.070 17.40  0  0    3    3
Merc 450SL        17.3   8 275.8 180 3.07 3.730 17.60  0  0    3    3
Merc 450SLC       15.2   8 275.8 180 3.07 3.780 18.00  0  0    3    3
Dodge Challenger  15.5   8 318.0 150 2.76 3.520 16.87  0  0    3    2
AMC Javelin       15.2   8 304.0 150 3.15 3.435 17.30  0  0    3    2
Pontiac Firebird  19.2   8 400.0 175 3.08 3.845 17.05  0  0    3    2
Ford Pantera L    15.8   8 351.0 264 4.22 3.170 14.50  0  1    5    4
Ferrari Dino      19.7   6 145.0 175 3.62 2.770 15.50  0  1    5    6
Maserati Bora     15.0   8 301.0 335 3.54 3.570 14.60  0  1    5    8

Небольшое пояснение: в R кадры данных представляют собой списки столбцов. Если вы используете квадратные скобки с аргументом Один, предполагается, что вы подмножаете столбцы, так как mtcars['mpg'] — это столбец mpg mtcars, а data['pickup_latitude'] — столбец pickup_latitude data. Если вы хотите проиндексировать строки, вам нужны аргументы в форме data[rows, columns], но если либо rows, либо columns отсутствуют, предполагается, что все. Итак, mtcars[1:3, ] — это первые три строки mtcars со всеми столбцами. mtcars[mtcars['mpg'] <= 20 & mtcars['mpg'] >= 15, ] — это строки mtcars, соответствующие логическим требованиям, со всеми столбцами.

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

subset(data, pickup_latitude <=90 & pickup_latitude >=-90)

Как выполнить нарезку для нескольких столбцов, как если бы mpg был нарезан выше, и я хочу также нарезать cyl, disp, hp, drat, wt, vs вместе

surya rahul 22.05.2019 14:47

Вы имеете в виду выбрать только эти столбцы? mtcars[..same condition.., c("cyl", "disp", ...)]. Или вы имеете ввиду дополнительные условия? Просто соедините их вместе с помощью &: mtcars[mtcars['cyl'] == 4 & mtcars['disp'] < 300 & ..., ] Используйте столько условий в любом количестве столбцов, сколько хотите.

Gregor Thomas 22.05.2019 14:49

Как сделать для условия типа mpg between 18 to 20 , cyl between 6 to 10 , disp between 10 to 50 ? то есть все столбцы имеют разный диапазон значений. @Грегор

surya rahul 22.05.2019 15:44

Склеить их вместе: subset(mtcars, mpg >= 18 & mpg <= 20 & cyl >= 6 & cyl <= 10 & disp >= 100 & disp <= 300). Вы можете использовать & для и, | для или...

Gregor Thomas 22.05.2019 15:58

Спасибо, @Gregor. Это работает, я использовал | вместо & между двумя разными столбцами для нарезки.

surya rahul 22.05.2019 16:14

Другие вопросы по теме