Rでデータフレームの形状を変更する

ヤーバウル

単一の列で繰り返される値を複数のデータ列を持つ単一の行に変換して、再形成する必要のあるデータフレームがあります。これは単純なはずですが、これを行う方法と、使用可能な多くのリシェイプ/キャスト関数のどれを使用する必要があるのか​​がわかりません。

私のデータの一部は次のようになります。

 Source       ID info
1     In   842701    1
2    Out   842701    1
3     In 21846591    2
4    Out 21846591    2
5     In 22181760    3
6     In 39338740    4
7    Out     9428    5

私はそれをこのように見せたい:

        ID In Out info
1   842701  1   1    1
2 21846591  1   1    2
3 22181760  1   0    3
4 39338740  1   0    4
5     9428  0   1    5

など、残りのすべての列(特定のエントリで同一)を保持します。

私は本当にいくつかの助けをいただければ幸いです。TIA。

akrun

これが使用する方法です reshape2

library(reshape2)
res <- dcast(transform(df, indx=1, ID=factor(ID, levels=unique(ID))),
                                   ID~Source, value.var="indx", fill=0)


res
#        ID In Out
#1   842701  1   1
#2 21846591  1   1
#3 22181760  1   0
#4 39338740  1   0
#5     9428  0   1

または

res1 <- as.data.frame.matrix(table(transform(df,
                 ID=factor(ID, levels=unique(ID)))[,2:1]))

更新

dcast(transform(df1, indx=1, ID=factor(ID, levels=unique(ID))),
                                 ...~Source, value.var="indx", fill=0)

 #        ID info In Out
 #1   842701    1  1   1
 #2 21846591    2  1   1
 #3 22181760    3  1   0
 #4 39338740    4  1   0
 #5     9428    5  0   1

reshapeからも使用できますbase R

 res2 <- reshape(transform(df1, indx=1), idvar=c("ID", "info"),
                              timevar="Source", direction="wide")

 res2[,3:4][is.na(res2)[,3:4]] <- 0
 res2
 #        ID info indx.In indx.Out
 #1   842701    1       1        1
 #3 21846591    2       1        1
 #5 22181760    3       1        0
 #6 39338740    4       1        0
 #7     9428    5       0        1

データ

df <- structure(list(Source = c("In", "Out", "In", "Out", "In", "In", 
"Out"), ID = c(842701L, 842701L, 21846591L, 21846591L, 22181760L, 
39338740L, 9428L)), .Names = c("Source", "ID"), class = "data.frame", row.names = c("1", 
"2", "3", "4", "5", "6", "7"))


df1 <- structure(list(Source = c("In", "Out", "In", "Out", "In", "In", 
 "Out"), ID = c(842701L, 842701L, 21846591L, 21846591L, 22181760L, 
 39338740L, 9428L), info = c(1L, 1L, 2L, 2L, 3L, 4L, 5L)), .Names = c("Source", 
 "ID", "info"), class = "data.frame", row.names = c("1", "2", 
 "3", "4", "5", "6", "7"))

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

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

編集
0

コメントを追加

0

関連記事

分類Dev

複数の列で pandas データ フレームの形状を変更する

分類Dev

Rのデータフレームの列の形状を変更します

分類Dev

列名に年があるデータフレームの形状を変更する

分類Dev

Rの列を繰り返すデータフレームの形状を変更する

分類Dev

データフレームスライス列の形状を変更する

分類Dev

データフレームの形状変更-列と行を変更します

分類Dev

rデータフレームの構造を変更する

分類Dev

R複雑なデータフレームの形状変更

分類Dev

以下のRでデータフレームを変更する方法

分類Dev

Rでデータフレームの列を動的に変更する方法

分類Dev

Juliaデータフレームの形状を変更し、グループ化し、名前を変更するにはどうすればよいですか?

分類Dev

パンダ-データフレームの形状を変更します

分類Dev

Pandasデータフレームの形状を変更します(部分転置)

分類Dev

R:2次元以上の場合、データフレームの形状を変更します

分類Dev

マージセルを使用してデータフレームパンダの形状を変更する

分類Dev

データフレームのインデックスまたは形状を変更する方法

分類Dev

データフレームの形状を変更する必要があります(多くの列名)

分類Dev

データフレームの形状を長いものから広いものに変更する

分類Dev

N列のブロックでPandasデータフレーム列の形状を変更します

分類Dev

列の値に基づいてpandasデータフレームの形状を変更する

分類Dev

パンダを使用してデータフレームの形状を変更する

分類Dev

データフレームの形状を変更し、繰り返し列をデータフレーム行に転置する方法は?

分類Dev

Rのデータフレームの日付を変更する

分類Dev

Rデータフレームで文字列を数値に変更する

分類Dev

行が列になるようにデータフレームの形状を変更したいのですが、そうすることができません

分類Dev

Rのデータフレームを繰り返し変更する

分類Dev

Rのforeach()でデータフレームの特定の列の長さを変更する方法

分類Dev

ループPythonでデータフレーム列の値を変更する

分類Dev

データフレームの各行の値を変更する

Related 関連記事

  1. 1

    複数の列で pandas データ フレームの形状を変更する

  2. 2

    Rのデータフレームの列の形状を変更します

  3. 3

    列名に年があるデータフレームの形状を変更する

  4. 4

    Rの列を繰り返すデータフレームの形状を変更する

  5. 5

    データフレームスライス列の形状を変更する

  6. 6

    データフレームの形状変更-列と行を変更します

  7. 7

    rデータフレームの構造を変更する

  8. 8

    R複雑なデータフレームの形状変更

  9. 9

    以下のRでデータフレームを変更する方法

  10. 10

    Rでデータフレームの列を動的に変更する方法

  11. 11

    Juliaデータフレームの形状を変更し、グループ化し、名前を変更するにはどうすればよいですか?

  12. 12

    パンダ-データフレームの形状を変更します

  13. 13

    Pandasデータフレームの形状を変更します(部分転置)

  14. 14

    R:2次元以上の場合、データフレームの形状を変更します

  15. 15

    マージセルを使用してデータフレームパンダの形状を変更する

  16. 16

    データフレームのインデックスまたは形状を変更する方法

  17. 17

    データフレームの形状を変更する必要があります(多くの列名)

  18. 18

    データフレームの形状を長いものから広いものに変更する

  19. 19

    N列のブロックでPandasデータフレーム列の形状を変更します

  20. 20

    列の値に基づいてpandasデータフレームの形状を変更する

  21. 21

    パンダを使用してデータフレームの形状を変更する

  22. 22

    データフレームの形状を変更し、繰り返し列をデータフレーム行に転置する方法は?

  23. 23

    Rのデータフレームの日付を変更する

  24. 24

    Rデータフレームで文字列を数値に変更する

  25. 25

    行が列になるようにデータフレームの形状を変更したいのですが、そうすることができません

  26. 26

    Rのデータフレームを繰り返し変更する

  27. 27

    Rのforeach()でデータフレームの特定の列の長さを変更する方法

  28. 28

    ループPythonでデータフレーム列の値を変更する

  29. 29

    データフレームの各行の値を変更する

ホットタグ

アーカイブ