如何在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