2015-09-21 3 views
-6

В R, как можно запросить запрос данных так же, как SQL-таблица может быть запрошена?Простой запрос dataframe в R

enter image description here

Например, если я загружаю выше .csv в RStudio, как я могу создать функцию, которая позволяет мне ввода определенного цвета, пол и молодой/старый, чтобы получить точные значения, перечисленные в кадре данных (например, ввод функции «синий, мужской, старый» и выход «29»)?

+1

Что вы пробовали до сих пор? Вместо того, чтобы сообщать вам код, вам лучше показать, что вы пробовали, и не удалось, поэтому мы можем помочь настроить ваш код. Также не забудьте показать фрагмент ваших данных, чтобы у нас было с чем работать. – Badger

+5

Пожалуйста, не публикуйте скриншоты данных. Вы можете использовать dput (data) и copy-paste, который выводится. Люди, желающие помочь вам, должны иметь возможность загружать ваши данные с минимальными усилиями. Вручную вводить данные не является минимальным усилием. – Heroka

+1

Возможно, вы захотите рассмотреть вопрос о более высоком уровне. Ответ OlivierDeMeulder ниже в значительной степени показывает, как вы обычно делаете это в R, но вы, вероятно, можете получить лучшие результаты, спросив, как решить проблему, которую вы пытаетесь решить с этим. Почему вы хотите запросить один элемент? – user295691

ответ

1

Здесь мы идем - Еще раз спасибо, Barranka и Оливье за ​​помощь.

subset(df, (Gender == 'Male' & Color == 'Blue'), select=c(Old)) 
3

Каким образом можно запросить запрос данных таким же образом, как и SQL-таблица?

Если вы знакомы с SQL-запросами, R имеет заднюю панель! Взгляните на sqldf package. Вы можете манипулировать кадры данных, как если бы они были таблицы в базе данных SQL (точнее, база данных SQLite)

Для примера (asuming ваших данных хранятся в dataframe называется df):

sqldf("select Old from df where Color = 'Blue' and Gender = 'Male'") 

Из Конечно, у R есть много способов сделать что-то, поэтому вы можете проверить The Quick-R tutorial: Subsetting data.

+0

Спасибо, Барранка, именно то, что я искал. –

+0

@SidneyCarton, если он решает вашу проблему, примите его – Barranka

+0

Благодаря Heroka, моя репутация только что уменьшена наполовину (видимо, за то, что вы не слышали о «dput»), что означает, что я больше не могу нажать «этот ответ полезен» для вашего полезный ответ. Я подозреваю, что моя способность прокомментировать мои собственные вопросы будет удалена дальше? –

2

Вы можете установить пакет для этого.

В качестве альтернативы вы можете использовать встроенную функцию подмножества.

Например (если ФР ваш dataframe):

subset(df, (Gender == 'Male' & Color == 'Blue')) 
+0

Спасибо, Оливье - ваша функция выводит полную строку значений, а не одно значение. Я изменил ваш код ниже, однако это также не выводит ни одного значения. подмножество (df $ Old, (Gender == 'Male' & Color == 'Blue')) –

Смежные вопросы