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

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

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