SQL属性FROM和WHERE在R数据框架中



如何在R data.frames中使用类似SQL的功能来选择数据?

假设我有如下data.frame:

Names Numbers
A       1
B       2 
C       3

如何使用字符串"B"one_answers"数字"而不是数据[2,2]选择数字2 ?我想使用数据之类的东西["B","数字"],但它不起作用,请帮助!!

使用data.frames时可以使用[,也可以使用subset。注意,[有一个drop = TRUE参数,如果返回单个值/列,该参数将强制转换为原子向量。

DF <- data.frame(Names = LETTERS[1:3], Numbers = 1:3)
subset(DF, Names == 'B', select = Numbers)
##   Numbers
## 2       2
DF[DF$Names == 'B', 'Numbers']
## [1] 2
DF[DF$Names == 'B', 'Numbers', drop = FALSE]
##   Numbers
## 2       2

我喜欢data.tables。FAQ 2.16描述了SQL和data.table语法的相似之处

library(data.table)
DT <- data.table(DF)
DT[Names == 'B', Numbers]
## [1] 2
# using keys
setkey(DT,Names)
DT['B'][,list(Numbers)]
##     Numbers
## 1:        2

或者有sqldf允许你在data.frames

中使用SQL
library(sqldf)
sqldf('select Numbers from DF where Names == "B"')
##   Numbers
## 1       2

最新更新