[問題] 有關於資料整理(向右對齊)
[軟體熟悉度]:
使用者(已經有用R 做過不少作品)
[問題敘述]:
請簡略描述你所要做的事情,或是這個程式的目的
有一個data.table如以下格式,
x b V3 V4
1 1 2 1 1
2 2 3
3 3 4
4 4 5 4 4
5 5 6 5 5
6 1 2 1 1
我想要變成以下格式,
x b V3 V4
1 1 2 1 1
2 2 3
3 3 4
4 4 5 4 4
5 5 6 5 5
6 1 2 1 1
目前我可以用一個迴圈把它完成,如以下,
但是我想問有沒有使用data.table語言的方法?
因為實際資料有達到十萬多條row。
len <- ncol(dd)
dd <- as.data.frame(dd)
for (x in 1:nrow(dd)) {
idx <- sum(dd[x,]!="")
if(idx != len) {
dd[x,((len-idx+1):len)] <- dd[x,1:idx]
dd[x,1:(len-idx)] <- ""
}
}
關於data.table的方式,我有想到一個方法如下,
可是執行一直報錯,所以不知道問題在哪?
len=ncol(dd)
fun <- function(x) {
idx <- len-length(which(x!=''))
if (idx !=0) {
res <- cbind(array(rep('',idx),c(1,idx)),as.vector(x[which(x!='')]))
} else {
res <- as.vector(x[which(x!='')])
}
res
}
dd[,names(dd)[1:4]:=apply(.SD, 1, fun)]
先謝謝大家了!
--
※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 122.84.64.149
※ 文章網址: https://www.ptt.cc/bbs/R_Language/M.1436715260.A.EFF.html
→
07/13 00:01, , 1F
07/13 00:01, 1F
→
07/13 01:22, , 2F
07/13 01:22, 2F
討論串 (同標題文章)
以下文章回應了本文:
完整討論串 (本文為第 1 之 4 篇):
R_Language 近期熱門文章
PTT數位生活區 即時熱門文章