我想爲每行在我的data.table中提取第一個非缺失變量。在data.table中按行查找第一個非缺失變量R
function_non_missing<-function(x){
x<-x[!is.na(x)]
#Then apply some other transformations such as
#x<-x[x!=""]
#x<-x[x!="some random thing"]
if (length(x)>0){
x[1]
} else{
NA
}
}
現在我只想將這個函數逐行應用。我搜索了以前的答案,然後試着喜歡的東西:
data<-data[,non_missing_var:=function_non_missing(.SD),by=1:nrow(data)]
我也試過同樣的想法的其他排列,但似乎沒有任何工作。更一般地說,有人可能會指向某些教程,以瞭解使用.SDcols中指定的參數列逐行應用data.table想法的最有效方法(特別是如何使用Map和Reduce)。在實踐中,我經常想要做的是類似於:
data<-data[,my_new_var:=random_function(.SD),.SDcols=c("var_1","var_2","var_3"),by=1:nrow(data)]
和random_function正在向量上運行。
我知道這會工作,但我想要一個data.table解決方案。 – Vitalijs