データフレーム全体で複数の文字列を検索する

ケイ

which関数を使用して、データフレーム内の複数の文字列を検索しようとしています。data.frameで文字列を検索から答えを拡張しようとしています

データフレームの例は次のとおりです。

df1 <- data.frame(animal=c('a','b','c','two', 'five', 'c'), level=c('five','one','three',30,'horse', 'five'), length=c(10, 20, 30, 'horse', 'eight', 'c'))

1      a  five     10
2      b   one     20
3      c three     30
4    two    30  horse
5   five horse  eight
6      c  five      c 

このデータフレームで、1つの文字列にwhich関数を適用すると、正しい出力which(df1 =="c" , arr.ind = T);df1が得られます。

  row col
[1,]   3   1
[2,]   6   1
[3,]   6   3

しかし、複数の文字列を検索しようとすると、部分的に正しい出力しか得られません。 which(df1 ==c("c", "horse", "five") , arr.ind = T)

  row col
[1,]   5   2
[2,]   6   2

期待される出力は次のとおりです。

     row col
[1,]   3   1
[2,]   5   1
[3,]   6   1
[4,]   1   2
[5,]   5   2
[6,]   6   2
[7,]   4   3
[8,]   6   3

したがって、私の質問:

  1. c( "c"、 "horse"、 "five")を使用したソリューションが機能しないのはなぜですか?

  2. 私はで試しました

which(df1=="c" | df1=="horse" | df1 =="five", arr.ind = T)

これで正しい出力が得られますが、多くの文字列が長すぎる場合、コードを簡潔にするにはどうすればよいですか?

akrun

を使用してベクトルをループしlapply、を実行して==、を使用Reduceして単一の論理行列に|ラップし、でラップすることができます。which

which(Reduce(`|`, lapply(c("c", "horse", "five"), `==`, df1)), arr.ind = TRUE)
#     row col
#[1,]   3   1
#[2,]   5   1
#[3,]   6   1
#[4,]   1   2
#[5,]   5   2
#[6,]   6   2
#[7,]   4   3
#[8,]   6   3

または、別のオプションは、データセットの列をループして、mutate_allでラップすることです。which

library(dplyr)
df1 %>%
  mutate_all(list(~ . %in% c("c", "horse", "five"))) %>%
  as.matrix %>% 
  which(., arr.ind = TRUE)

注:ここでは、OPが完全な文字列一致を実行する場合、正規表現や部分一致は必要ありません。部分一致を行うよりも高速である必要があります


通常、複数の要素の%in%場合は便利ですが、data.frameではなくベクトルでのみ機能します

この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。

侵害の場合は、連絡してください[email protected]

編集
0

コメントを追加

0

関連記事

分類Dev

複数のPythonパンダデータフレーム全体でレコードを検索する

分類Dev

データフレームで複数の文字列を検索し、文字列の列と行に応じて異なる列の内容をプルする方法

分類Dev

データフレームの列で文字列値を検索する

分類Dev

Pythonのデータフレームでコンマ区切りの文字列で数値を検索する

分類Dev

複数のデータフレームをループして文字列のリストを取得し、文字列を含む列を検索して、複数の新しいファイルを作成するにはどうすればよいですか?

分類Dev

パンダを使用してデータフレーム全体の部分的な文字列を検索するにはどうすればよいですか?

分類Dev

Rの2つのデータフレームで複数のフィールドを検索する

分類Dev

複数の列に格納されているデータフレームの値を検索する

分類Dev

データフレーム内の複数の文字列を検索し、条件付きの場合はボトムアップですか?

分類Dev

データフレーム内の文字列を検索して置換する

分類Dev

カスタム関数でのデータフレーム文字列検索

分類Dev

Rのデータフレームの任意の列で部分一致文字列を検索する

分類Dev

postgresデータベース全体で文字列を検索する

分類Dev

さまざまなデータ型のデータフレーム列の文字列で数値を検索する

分類Dev

データフレーム列で文字列「Quote」の後の数字を検索する

分類Dev

データフレーム全体で複数の観測値を集計()する

分類Dev

データフレーム文字列列で単語のリストを検索する

分類Dev

データフレーム列の各要素でgrplを使用して、異なるデータフレーム内の文字列を検索します

分類Dev

Pythonで複数の列名を持つデータフレームを検索して結合する

分類Dev

行全体のパンダデータフレーム検索文字列

分類Dev

R のデータフレームで文字列のリストを検索する

分類Dev

データフレームの列で同一の値を検索し、重複するたびに新しいデータフレームを作成します

分類Dev

複数のデータフレームで類似した列名を検索する

分類Dev

データフレーム文字列列をパターンなしで複数の列に分割する

分類Dev

別のデータフレームの列で変数値のリストを検索する

分類Dev

Pythonでデータフレーム全体の一致する値を検索して置換する

分類Dev

データフレーム内の別の文字列内の文字列の一部を検索する

分類Dev

文字列のベクトルを使用してデータフレーム内の文字列を検索する

分類Dev

文字列のリストを含むデータフレーム列で文字列を検索し、完全なデータフレームを返します

Related 関連記事

  1. 1

    複数のPythonパンダデータフレーム全体でレコードを検索する

  2. 2

    データフレームで複数の文字列を検索し、文字列の列と行に応じて異なる列の内容をプルする方法

  3. 3

    データフレームの列で文字列値を検索する

  4. 4

    Pythonのデータフレームでコンマ区切りの文字列で数値を検索する

  5. 5

    複数のデータフレームをループして文字列のリストを取得し、文字列を含む列を検索して、複数の新しいファイルを作成するにはどうすればよいですか?

  6. 6

    パンダを使用してデータフレーム全体の部分的な文字列を検索するにはどうすればよいですか?

  7. 7

    Rの2つのデータフレームで複数のフィールドを検索する

  8. 8

    複数の列に格納されているデータフレームの値を検索する

  9. 9

    データフレーム内の複数の文字列を検索し、条件付きの場合はボトムアップですか?

  10. 10

    データフレーム内の文字列を検索して置換する

  11. 11

    カスタム関数でのデータフレーム文字列検索

  12. 12

    Rのデータフレームの任意の列で部分一致文字列を検索する

  13. 13

    postgresデータベース全体で文字列を検索する

  14. 14

    さまざまなデータ型のデータフレーム列の文字列で数値を検索する

  15. 15

    データフレーム列で文字列「Quote」の後の数字を検索する

  16. 16

    データフレーム全体で複数の観測値を集計()する

  17. 17

    データフレーム文字列列で単語のリストを検索する

  18. 18

    データフレーム列の各要素でgrplを使用して、異なるデータフレーム内の文字列を検索します

  19. 19

    Pythonで複数の列名を持つデータフレームを検索して結合する

  20. 20

    行全体のパンダデータフレーム検索文字列

  21. 21

    R のデータフレームで文字列のリストを検索する

  22. 22

    データフレームの列で同一の値を検索し、重複するたびに新しいデータフレームを作成します

  23. 23

    複数のデータフレームで類似した列名を検索する

  24. 24

    データフレーム文字列列をパターンなしで複数の列に分割する

  25. 25

    別のデータフレームの列で変数値のリストを検索する

  26. 26

    Pythonでデータフレーム全体の一致する値を検索して置換する

  27. 27

    データフレーム内の別の文字列内の文字列の一部を検索する

  28. 28

    文字列のベクトルを使用してデータフレーム内の文字列を検索する

  29. 29

    文字列のリストを含むデータフレーム列で文字列を検索し、完全なデータフレームを返します

ホットタグ

アーカイブ