根據涉及字段的條件提取數據幀的子集我有一個大的CSV,其中包含來自不同位置的醫學調查結果(該位置是數據中存在的因素)。由于某些分析特定于某個位置并且為了方便起見,我想僅從這些位置提取具有行的子幀。碰巧該位置是第一個字段所以是的,我可以通過對CSV行進行排序來實現,但我想學習如何在R中進行操作,因為我確信我需要將其用于其他列。所以,簡而言之,問題是:給定一個數據框foo,如何創建另一個數據框條,其中只包含來自foo的行foo$location = 'there'?
2 回答

天涯盡頭無女友
TA貢獻1831條經驗 獲得超9個贊
以下是兩種主要方法。我更喜歡這個因為它的可讀性:
bar <- subset(foo, location == "there")
請注意,您可以使用&
和|
將許多條件串起來并創建復雜的子集。
第二種是索引方法。您可以使用數字或布爾切片為R中的行編制索引。foo$location == "there"
返回一個矢量T
和F
值,其長度與行的長度相同foo
。您可以這樣做只返回條件返回true的行。
foo[foo$location == "there", ]

慕妹3146593
TA貢獻1820條經驗 獲得超9個贊
只是為了擴展上面的答案,你也可以索引你的列而不是指定列名,這也可能是有用的,這取決于你正在做什么。鑒于您的位置是第一個字段,它看起來像這樣:
bar <- foo[foo[ ,1] == "there", ]
這很有用,因為您可以對列值執行操作,例如循環遍歷特定列(您也可以通過索引行號來執行相同操作)。
如果您需要對多個列執行某些操作,這也很有用,因為您可以指定一系列列:
foo[foo[ ,c(1:N)], ]
或者特定列,正如您所期望的那樣。
foo[foo[ ,c(1,5,9)], ]
- 2 回答
- 0 關注
- 558 瀏覽
添加回答
舉報
0/150
提交
取消