ошибки с помощью unlist, lapply и grepl в данных.таблицы р


questiondata.tablemc2de1071

Этот вопрос является продолжением этой частности . У меня этих данных.таблица. Я использую , и библиотеки

library("data.table")library("mc2d")library("e1071")col <- c("COST","TIME")dt <- structure(  list(    ID = c("a", "b", "c", "d", "e", "f", "g", "h", "i", "j"),COST_PR_L = c(NA, 0.4, 0.31, 0.4, 0.5, 0.17, 1, 0.5, 0.5, 0.5),COST_PR_U = c(7.5, 2, 2.67, 1.67, 2.4,2, 1.5, 2, 2, 1.67),COST_PO_L = c(NA, 0.33, 0.25, 0.44,0.5, 0.25, 1, 0.5, 0.5, 0.5),COST_PO_U = c(3, 1.43, 3.33,1.8, 2.4, 3.6, 1.45, 2, 1.5, 1.67), TIME_PR_L = c(NA, 0.5,0.4, 0.5, 0.5, NA, 0.67, 0.5, 0.5, 0.5), TIME_PR_U = c(2,2.5, 3, 1.5, 2, NA, 1.5, 2, 1.67, 2), TIME_PO_L = c(NA,0.4, 0.25, 0.56, 0.5, NA, 0.6, 0.5, 0.5, 0.5), TIME_PO_U = c(2,2, 5, 1.67, 2.5, NA, 1.5, 2, 1.67, 2)  ),.Names = c("ID","COST_PR_L", "COST_PR_U","COST_PO_L","COST_PO_U","TIME_PR_L","TIME_PR_U","TIME_PO_L","TIME_PO_U"),class = c("data.table","data.frame"),row.names = c(NA,-10L))

Когда я запускаю эту конкретную операцию на нем,

dt[, unlist(lapply(col, function(xx) {     y = colnames(dt)[grepl(pattern = xx, x = colnames(dt))]     vars1 = y[grepl(pattern = "PR", x = y)]     vars2 = y[grepl(pattern = "PO", x = y)]     mn = get(vars1[1])     mx = get(vars1[2])     sk1 = ifelse(mn !=0 && mx !=0,skewness(rpert(1000, min = mn , mode = 1, max= mx )),-1)     mn = get(vars2[1])     mx = get(vars2[2])     sk2 = ifelse(mn !=0 && mx !=0,skewness(rpert(1000, min = mn , mode = 1, max= mx )),-1)     return(list(sk1, sk2)) }), recursive = FALSE) , by = "ID"]

Я получаю следующую ошибку

Error in [.data.table(dt, , unlist(lapply(col, function(xx) { :
Column 1 of result for group 2 is type 'double' but expecting type 'logical'. Column types must be consistent for each group.

Однако, если я удалить unlist в код, кажется, чтобы вычислить ответ. Что unlist делать то испортил?