如何在R資料框中根據字串匹配查詢字串列的列號?
資料框可能很長,並且包含僅包含字串值的列以及數值列。在進行分析時,我們可能需要檢查哪些列包含特定字串值。例如,如果我們有一列字串值為 A、B 和 C,並且我們想要檢查哪個列包含值“A”,則可以使用 apply 函式,如下例所示。
示例
考慮以下資料框:
x1<-sample(LETTERS[1:4],20,replace=TRUE) x2<-rpois(20,2) df1<-data.frame(x1,x2) df1
輸出
x1 x2 1 A 3 2 B 1 3 B 2 4 A 2 5 D 3 6 C 2 7 A 3 8 B 1 9 D 3 10 A 1 11 B 0 12 A 2 13 D 2 14 B 0 15 B 3 16 B 1 17 D 4 18 C 1 19 B 4 20 B 1
檢查存在 A 的列:
示例
sapply(df1, function(x) any(x=="A"))
輸出
x1 x2 TRUE FALSE
此處,列 x1 的輸出為 TRUE,因此列 x1 包含 A。
示例
y1<-rnorm(20) y2<-sample(c("Rooh","Frank","Christina"),20,replace=TRUE) df2<-data.frame(y1,y2) df2
輸出
y1 y2 1 -1.05746268 Christina 2 -0.46353464 Rooh 3 -0.30686060 Rooh 4 0.22968835 Christina 5 0.36001582 Rooh 6 0.21773469 Christina 7 0.52068600 Christina 8 -0.28930238 Christina 9 2.75670872 Rooh 10 -0.70136439 Frank 11 1.49660551 Frank 12 0.02635582 Rooh 13 -2.20396449 Frank 14 0.82857546 Frank 15 0.36148329 Rooh 16 -0.82422499 Frank 17 -0.50081026 Rooh 18 -0.07842975 Christina 19 -1.19349053 Rooh 20 -0.55590686 Frank
檢查存在 Rooh 的列:
示例
sapply(df2, function(x) any(x=="Rooh"))
輸出
y1 y2 FALSE TRUE
廣告