R中的简单数据帧查询

时间:2015-09-21 16:52:47

标签: r

在R中,如何以与查询SQL表类似的方式查询数据帧?

enter image description here

例如,如果我将上面的.csv加载到RStudio中,我怎样才能创建一个函数,让我输入特定的颜色,性别和年轻/旧,以便检索数据框中列出的确切值(例如函数)输入是“蓝色,男性,老”,输出是“29”)?

3 个答案:

答案 0 :(得分:3)

  

如何以与查询SQL表类似的方式查询数据帧?

如果您熟悉SQL查询,R会让您满意!看看sqldf package。您可以像处理SQL数据库中的表一样操作数据框(更准确地说,是SQLite数据库)

对于您的示例(假设您的数据存储在名为df的数据框中):

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

当然,R有很多方法可以做,所以你可能想检查The Quick-R tutorial: Subsetting data

答案 1 :(得分:2)

您可以安装一个包来执行此操作。

或者,您可以使用内置子集功能。

例如(如果df是您的数据帧):

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

答案 2 :(得分:1)

我们走了 - 再次感谢Barranka和Olivier的帮助。

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