У меня есть большой фрейм данных с первым столбцом, являющимся алфавитно-цифровыми именами строк. Я использую idx, как показано ниже, для выбора случайного выбора строк для каждого столбца (здесь 3 строки). Теперь мне нужно вычислить кумулятивную сумму для каждого idx [i, j]. Мой кадр данных огромен, поэтому функции в пакете plyr предпочтительнее ради времени вычисления. Любая идея, как мне рассчитать это?Как вычислить cumsum на основе имен строк, хранящихся в виде списка?
library(plyr)
V1 <- c('t14','t23','t54', 't13', 't1','t102', 't104', 't245')
V2 <- c(4.2, 5.3, 5.4,6, 7,8.5,9, 10.1)
V3 <- c(5.1, 5.1, 2.4,6.1, 7.7,5.5,1.99, 5.42)
my_df <- data.frame(V1, V2, V3)
#The following line randomly select 3 rows for each column
idx <- lapply(integer(ncol(my_df)-1), function(...) sample(my_df$V1, 3))
Благодаря
«Мой кадр данных огромен, поэтому функции в пакете plyr предпочтительны ради времени вычисления» - это не имеет смысла. Вы используете plyr для своей простоты и простоты использования, а не потому, что он быстрый или масштабируемый для огромных наборов данных. –