请如何使用R data.frames中的SQL功能选择数据?
假设我有以下data.frame:
Names Numbers
A 1
B 2
C 3
如何使用字符串“B”和“Numbers”而不是数据[2,2]来选择数字2?我想使用像数据[“B”,“数字”]这样的东西,但它不起作用,请帮忙!!!
答案 0 :(得分:2)
使用[
时,您可以使用subset
或data.frames
。请注意,[
有一个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