JoF*_*wld 97
以下是两种主要方法.我更喜欢这个因为它的可读性:
bar <- subset(foo, location == "there")
Run Code Online (Sandbox Code Playgroud)
请注意,您可以使用&和|将许多条件字符串组合在一起以创建复杂的子集.
第二种是索引方法.您可以使用数字或布尔切片为R中的行编制索引.foo$location == "there"返回一个矢量T和F值,其长度与行的长度相同foo.您可以这样做只返回条件返回true的行.
foo[foo$location == "there", ]
Run Code Online (Sandbox Code Playgroud)
只是为了扩展上面的答案,您还可以对列进行索引,而不是指定列名称,这也可能很有用,具体取决于您正在做什么。鉴于您的位置是第一个字段,它看起来像这样:
bar <- foo[foo[ ,1] == "there", ]
Run Code Online (Sandbox Code Playgroud)
这很有用,因为您可以对列值执行操作,例如循环特定列(您也可以通过索引行号来执行相同的操作)。
如果您需要对多个列执行某些操作,这也很有用,因为您可以指定一系列列:
foo[foo[ ,c(1:N)], ]
Run Code Online (Sandbox Code Playgroud)
或者如您所期望的特定列。
foo[foo[ ,c(1,5,9)], ]
Run Code Online (Sandbox Code Playgroud)