Re: [問題] 兩個變項合併為一

看板R_Language作者 (天)時間10年前 (2015/08/10 15:32), 10年前編輯推噓1(100)
留言1則, 1人參與, 最新討論串2/2 (看更多)
※ 引述《zxas10143 (~無言以對~)》之銘言: : [軟體熟悉度]: : 入門(寫過其他程式,只是對語法不熟悉 : 各位高手好 : 小的想請教前輩們如何將變項X與變項Y合併為變項Z : 如下: : x y z(合併後) : 1 NA 1 : 2 NA 2 : NA 5 5 : 3 NA 3 : NA 8 8 : 用STATA的語言就是 egen z=rowfirst( x y ) : 不知道R是怎麼做的呢? : 還煩請前輩們解惑 五種方法任君挑選^^" ## naive method dat = data.frame(x = c(1,2,NA,3,NA), y = c(NA,NA,5,NA,8)) dat$z = dat$x dat$z[is.na(dat$x)] = dat$y[is.na(dat$x)] ## cool method dat = data.frame(x = c(1,2,NA,3,NA), y = c(NA,NA,5,NA,8)) dat$z = ifelse(is.na(dat$x), dat$y, dat$x) ## more elegant dat = data.frame(x = c(1,2,NA,3,NA), y = c(NA,NA,5,NA,8)) dat$z = with(dat, ifelse(is.na(x), y, x)) ## tricky but helpful for three or more columns dat = data.frame(x = c(1,2,NA,3,NA), y = c(NA,NA,5,NA,8)) dat$z = na.omit(c(unlist(t(dat)))) ## only available for numeric columns dat = data.frame(x = c(1,2,NA,3,NA), y = c(NA,NA,5,NA,8)) dat$z = rowSums(dat, TRUE) benchmark: http://pastebin.com/z03vffti 我一般都用2或3... 雖然看起來benchmark是比較沒效率XDDDD (但是都很快就是) 但是在dplyr中使用的話,比較方便 搭配data.table也比較不會有複製資料的問題 4跟5是我google到的方法,歡迎參考看看。 reference: http://tinyurl.com/nzjtxea -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 123.205.27.107 ※ 文章網址: https://www.ptt.cc/bbs/R_Language/M.1439191952.A.CF9.html

08/10 15:50, , 1F
先跪在說,c大需要擦鞋洗腳嗎XD擦鞋我拿手低~
08/10 15:50, 1F
囧,拜託別這樣... 我只是喜歡google跟解決問題而已XD ※ 編輯: celestialgod (123.205.27.107), 08/10/2015 16:12:22
文章代碼(AID): #1Lo5EGpv (R_Language)
討論串 (同標題文章)
文章代碼(AID): #1Lo5EGpv (R_Language)