簡體   English   中英

將數據框的某些元素移到新列中(R中)

[英]Moving certain elements of data frame into new columns (in R)

我在R中有一個數據框,如下所示:

jiz <- data.frame(Type=c("X","B","B","B","B","X","B"),
                  Action=c("both","1","2","2","1","both","1"))

Type是X或B,並且Action決定應對Type中的變量采取哪種類型的操作(操作1或2)。 如果類型為“ X”,則始終要執行兩個動作,如果類型為“ B”,則將要執行動作1 動作2。

現在我們添加兩列:

jiz[c("1","2")]<-NA

現在,我希望“ X”同時進入兩個新列,因為已經執行了兩個動作,而“ B”則同時進入了新列中的任何一個-取決於所執行的操作,因此任何R代碼都會使這個新數據框:

jiz.new <- data.frame(Type=c("X","B","B","B","B","X","B"),
                      Action=c("both","1","2","2","1","both","1"),
                      "1"=c("X","B",0,0,"B","X","B"),
                      "2"=c("X",0,"B","B",0,"X",0))

請注意,如果“ B”具有動作2-B被放入新列“ 2”中-並且0被放入列“ 1”中。

這是一種方法:

transform(jiz, "1" = ifelse(Action != "2", as.character(Type), "0"),
               "2" = ifelse(Action != "1", as.character(Type), "0"))

  Type Action X1 X2
1    X   both  X  X
2    B      1  B  0
3    B      2  0  B
4    B      2  0  B
5    B      1  B  0
6    X   both  X  X
7    B      1  B  0

暫無
暫無

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

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