根据涉及字段的条件提取数据帧的子集

根据涉及字段的条件提取数据帧的子集

我有一个大的CSV,其中包含来自不同位置的医学调查结果(该位置是数据中存在的因素)。由于某些分析特定于某个位置并且为了方便起见,我想仅从这些位置提取具有行的子帧。碰巧该位置是第一个字段所以是的,我可以通过对CSV行进行排序来实现,但我想学习如何在R中进行操作,因为我确信我需要将其用于其他列。

所以,简而言之,问题是:给定一个数据框foo,如何创建另一个数据框条,其中只包含来自foo的行foo$location = 'there'


元芳怎么了
浏览 537回答 2
2回答

天涯尽头无女友

以下是两种主要方法。我更喜欢这个因为它的可读性:bar&nbsp;<-&nbsp;subset(foo,&nbsp;location&nbsp;==&nbsp;"there")请注意,您可以使用&和|将许多条件串起来并创建复杂的子集。第二种是索引方法。您可以使用数字或布尔切片为R中的行编制索引。foo$location == "there"返回一个矢量T和F值,其长度与行的长度相同foo。您可以这样做只返回条件返回true的行。foo[foo$location&nbsp;==&nbsp;"there",&nbsp;]

慕妹3146593

只是为了扩展上面的答案,你也可以索引你的列而不是指定列名,这也可能是有用的,这取决于你正在做什么。鉴于您的位置是第一个字段,它看起来像这样:&nbsp;&nbsp;&nbsp;&nbsp;bar&nbsp;<-&nbsp;foo[foo[&nbsp;,1]&nbsp;==&nbsp;"there",&nbsp;]这很有用,因为您可以对列值执行操作,例如循环遍历特定列(您也可以通过索引行号来执行相同操作)。如果您需要对多个列执行某些操作,这也很有用,因为您可以指定一系列列:&nbsp;&nbsp;&nbsp;&nbsp;foo[foo[&nbsp;,c(1:N)],&nbsp;]或者特定列,正如您所期望的那样。&nbsp;&nbsp;&nbsp;&nbsp;foo[foo[&nbsp;,c(1,5,9)],&nbsp;]
打开App,查看更多内容
随时随地看视频慕课网APP