wrt数据帧,R等价于SQL"选择从哪里"结构体?

时间:2014-08-06 07:22:49

标签: r

我有一个R数据帧(称为DataTable),它有两列:Value和Gender。值为数字,性别为M或F.

如果数据框是SQL中的表,我可以说:

从DataTable中选择*,其中Gender =' M'

在R中表达这个的最佳方法是什么?我希望输出只是Gender = M的值的向量。

我已经尝试过:

A <- DataTable[, Gender == "M"]

但它不起作用。这就是我得到的:

> A

0列和26行的数据框

> str(A)

&#39; data.frame&#39;:26 obs。 0变量

> summary(A)

&LT;范围表0 x 0&gt;

另外,我试图遵循Google的R风格指南,它说永远不会使用附加功能,因此我想知道如何在不使用它的情况下执行此操作。

我已经浏览了The R Cookbook以及The R Book的答案,但没有找到任何答案。

谢谢!

2 个答案:

答案 0 :(得分:0)

您将Gender == "M"放入[,]的错误一侧,即列侧,例如DataTable[rows, columns],要选择行,请执行以下操作:

A <- DataTable[DataTable$Gender == "M",]

答案 1 :(得分:0)

如果您只想要value,那么您将在SQL中执行

select value from DataTable where gender = 'M'

R中的等价物是

subset(DataTable, gender == "M", value)

或仅使用基本索引操作

DataTable[DataTable$gender == "M", "value"]