Предположим, что я хочу сделать следующее:Выбирают первый не недостающий элемент по строкам
1) Нанести некоторую функцию, которая заменяет не нужны символы, пустые пространства построчно; 2) Затем он выбирает (из исходных данных) строку за строкой первый непустой элемент (в соответствии с приведенным выше преобразованием).
Вот что я сейчас:
library(data.table)
data<-data.table(x=c("25&&&35&&1","&&&&","&&&&"),
y=c("&&&&&","1","&&&&2"),
z=c("&&&&&","","1"))
function_select<-function(x){
x[gsub("&","",x)!=""][1]
}
data[,function_select(unlist(.SD)),.SDcols=c("x","y"),by=1:nrow(data)]
nrow V1
1: 1 25&&&35&&1
2: 2 1
3: 3 &&&&2
У меня есть около 70 миллионов строк, у меня есть два вопроса: 1) Есть ли более быстрый раствор в использовании data.table; 2) Могу ли я ускорить свои вычисления, используя идеи от parLapply;
Вы должны показать ожидаемый результат. Первый символ выбирается через 'substring', а не' [1] ', поэтому, возможно, вы хотите« расплавить »(data [, r: = .I] [, c (« r »,« x »,« y »)] , id = "r") [значение% like% "[^ &]",. (variable = first (variable), char = substring (first (value), 1L, 1L)), by = r] ' – Frank
@ Фрэнк спасибо, я отредактировал вопрос, это первый непустой элемент, который я хочу – Vitalijs
@akrun будет быстрее? Я не вижу большой разницы между вашим и основным ответом. – Vitalijs