簡體   English   中英

重塑既寬又長(稀疏)的R data.table

[英]Reshaping R data.table that is both wide and long (and sparse)

我有一個data.table ,它既寬又長,而且稀疏。 這是最簡單的示例:

Row Val1 Val2
1   1
2        1

從寬收益重塑到長收益:

Row Idx Val
1   1   1
1   2
2   1
2   2   1

從長整型(索引是基於不丟失的行(在這種情況下為行號)隱含的)到寬收益的:

Row Val1.1 Val2.1 Val1.2 Val2.2
1   1                    1

我想要的是:

Row Idx Val
1   1   1
2   2   1

缺失值在結構上缺失,應將其丟棄。

數據集非常復雜(超過400列); 它來自一項調查,其中針對六個不同案例以六種不同方式復制了一個問題,並根據案例有選擇地填寫了答案。 每個問題有六個二進制答案,共36列。 需要將這些折疊成代表八個唯一二進制答案的八列,再加上一個標識案例的新列。

還有其他一些類似的問題,因此我需要找到一種算法來做到這一點,而且我沒有詞匯可以向Google解釋。 什么是正確的方法?

嘗試

setDT(df1)[,list(Idx=which.max(.SD), Val=1) , Row]
#   Row Idx Val
#1:   1   1   1
#2:   2   2   1

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM