R:リストに基づいて、データフレームに変数のタイプとレベルを設定します

tzema

私はこのようなデータフレームを持っています:

df <- data.frame(
  v1 = sample(c("L1","L2"),5,replace = TRUE), 
  v2 = sample(c("F1","F3"),5,replace = TRUE),
  v3 = sample(seq(1,5),5,replace = T)
)

(1)名前付きリストに基づいて変数のタイプを設定したい:

typs <- list("v1" = "factor", "v2" = "factor", "v3" = "numeric")

(2)因子変数のレベルを設定するには:

list.levels <-  list("v1" = c("L1","L2","L3"), "v2" = c("F1","F2","F3"))

理想的には、動的な列数を持つデータフレームに適用できる一般化されたアプローチを使用したいと思います。

MrFlick

クリーニングを行うには、独自の関数を作成する必要があります。これが1つの可能性です

fix_data <- function(data, types=NULL, flevels=NULL) {
  if(!is.null(types) && length(types)>0) {
    data[,names(types)] <- Map(function(col, type) {
      if (type=="factor") {
        factor(data[[col]])
      } else if (type=="numeric") {
        as.numeric(data[[col]])
      } else {
        stop(paste("unsupported type:", type))
      }
    }, names(types), types)
  }
  if(!is.null(flevels) && length(flevels)>0) {
    data[,names(flevels)] <- Map(function(col, levels) {
      factor(data[[col]], levels=levels)
    }, names(flevels), flevels)
  }
  data
}

そして、それをのように呼びますfix_data(df, typs, list.levels)新しいdata.frameが返されるため、元のフレームを上書きするか、新しい変数に保存することができます。

基本的な考え方は、リスト内の名前をループして適切な変換を行うことです。Mapリスト内の名前と値を反復処理するために使用します。

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

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

編集
0

コメントを追加

0

関連記事

分類Dev

Rの名前のベクトルに基づいてデータフレームにcolnamesを設定します

分類Dev

リストとデータフレームに基づいて複数の条件を持つデータフレームに新しい列を追加します

分類Dev

列の値に基づいてデータフレームの行を返します。Rスクリプト

分類Dev

Python、Pandas、および for ループ: リスト値との一致に基づいてデータフレーム行を設定する

分類Dev

R:リスト要素名に基づいて新しいデータフレーム変数を作成する

分類Dev

Rのifステートメントに基づいてデータフレームを定義します

分類Dev

他のデータフレームに基づいて、数値ベクトルのnames()をある変数から別の変数に変更します

分類Dev

別のデータフレームの値に基づいて、複数の列を作成してループを設定します

分類Dev

Rのデータフレームの列条件に基づいてベクトルを作成します

分類Dev

データフレーム内のベクトルとrbindに基づいて複数のXMLファイルを解析します

分類Dev

複数のデータフレームの共通のタイムスタンプに基づいてデータフレームを作成します

分類Dev

データフレームRに基づいてリストにデータを追加します

分類Dev

データフレーム操作:データフレームの特定の列をキー値列に基づいてリストに変換します

分類Dev

リストに基づいてデータフレームをフィルタリングし、次にそのフィルターに基づいて各データフレームを保存します。関数またはforループを作成する方法はありますか?

分類Dev

複数の列と行の基準に基づいてRデータフレームを展開します

分類Dev

条件と値のリストに基づいてpysparkデータフレームを作成します

分類Dev

R:ベクトル値に基づいてデータフレームから複数の列を削除する

分類Dev

Pyspark:複数の条件に基づいてデータフレームをフィルタリングします

分類Dev

別のデータフレームの一連のルールに基づいて、データフレームに一連の変数を作成します

分類Dev

文字ベクトルに基づいて、データフレームから動的な列数を作成します

分類Dev

angle2-正または負の場合にテンプレート変数に基づいてスタイルを設定する方法

分類Dev

Rデータフレームの変数に基づいてN個のラグを入力します

分類Dev

既存の数値列、列名などの文字列のリストと値としてタプルのリストに基づいてデータフレームに新しい列を作成します。

分類Dev

Pandas python:定義された列のリストに基づいて2つのデータフレームをマージする関数を作成します

分類Dev

Rで設定されたテストとトレインでデータフレームを分割するときに、すべてのレベルのカテゴリ変数を保持する方法

分類Dev

列の最大のインデックスと値に基づいて、データフレームの行をフィルタリングします

分類Dev

一意のIDごとに最新のタイムスタンプに基づいてデータフレームをフィルタリングする

分類Dev

既存の変数に基づいてデータフレームに新しい変数を作成します

分類Dev

Pysparkのデータフレームの条件に基づいて新しいリスト値を設定するにはどうすればよいですか?

Related 関連記事

  1. 1

    Rの名前のベクトルに基づいてデータフレームにcolnamesを設定します

  2. 2

    リストとデータフレームに基づいて複数の条件を持つデータフレームに新しい列を追加します

  3. 3

    列の値に基づいてデータフレームの行を返します。Rスクリプト

  4. 4

    Python、Pandas、および for ループ: リスト値との一致に基づいてデータフレーム行を設定する

  5. 5

    R:リスト要素名に基づいて新しいデータフレーム変数を作成する

  6. 6

    Rのifステートメントに基づいてデータフレームを定義します

  7. 7

    他のデータフレームに基づいて、数値ベクトルのnames()をある変数から別の変数に変更します

  8. 8

    別のデータフレームの値に基づいて、複数の列を作成してループを設定します

  9. 9

    Rのデータフレームの列条件に基づいてベクトルを作成します

  10. 10

    データフレーム内のベクトルとrbindに基づいて複数のXMLファイルを解析します

  11. 11

    複数のデータフレームの共通のタイムスタンプに基づいてデータフレームを作成します

  12. 12

    データフレームRに基づいてリストにデータを追加します

  13. 13

    データフレーム操作:データフレームの特定の列をキー値列に基づいてリストに変換します

  14. 14

    リストに基づいてデータフレームをフィルタリングし、次にそのフィルターに基づいて各データフレームを保存します。関数またはforループを作成する方法はありますか?

  15. 15

    複数の列と行の基準に基づいてRデータフレームを展開します

  16. 16

    条件と値のリストに基づいてpysparkデータフレームを作成します

  17. 17

    R:ベクトル値に基づいてデータフレームから複数の列を削除する

  18. 18

    Pyspark:複数の条件に基づいてデータフレームをフィルタリングします

  19. 19

    別のデータフレームの一連のルールに基づいて、データフレームに一連の変数を作成します

  20. 20

    文字ベクトルに基づいて、データフレームから動的な列数を作成します

  21. 21

    angle2-正または負の場合にテンプレート変数に基づいてスタイルを設定する方法

  22. 22

    Rデータフレームの変数に基づいてN個のラグを入力します

  23. 23

    既存の数値列、列名などの文字列のリストと値としてタプルのリストに基づいてデータフレームに新しい列を作成します。

  24. 24

    Pandas python:定義された列のリストに基づいて2つのデータフレームをマージする関数を作成します

  25. 25

    Rで設定されたテストとトレインでデータフレームを分割するときに、すべてのレベルのカテゴリ変数を保持する方法

  26. 26

    列の最大のインデックスと値に基づいて、データフレームの行をフィルタリングします

  27. 27

    一意のIDごとに最新のタイムスタンプに基づいてデータフレームをフィルタリングする

  28. 28

    既存の変数に基づいてデータフレームに新しい変数を作成します

  29. 29

    Pysparkのデータフレームの条件に基づいて新しいリスト値を設定するにはどうすればよいですか?

ホットタグ

アーカイブ