У меня есть кадр данных с 2 столбцами, первый - это идентификационный номер, а второй - список чисел. Я определил функцию, которая суммирует список и добавляет 2. То, что я хотел бы сделать, - это выполнить вычисления для всех строк без использования цикла for. Я попытался с помощью применить, но я не могу заставить его работать ...Применить функцию к столбцу кадра данных (столбец - это список)
Вот код:
Фрейм данных испытаний:
d1 <- c(1,2,3,4,5)
d2 <- c(4,6,8)
d3 <- c(5,10)
df1 <- data.frame(cbind(1, I(list(d1))))
df2 <- data.frame(cbind(2, I(list(d2))))
df3 <- data.frame(cbind(3, I(list(d3))))
df <- rbind(df1, df2, df3)
Определенная функция sum2:
sum2 <- function(a)
{
sum(unlist(a)) + 2
}
Как я могу применить заявку и добавить третий столбец в df, содержащий рассчитанное значение?
Спасибо!
Почему вы предпочитаете ' sapply' над циклом? Они оба являются петлями. Разве вы не хотите более чистого синтаксиса? –
Я думал, что смогу сделать это более эффективно ... Есть ли лучший способ сделать это? – jormaga
Не думаю, что сейчас один, извините. Если 'X2' содержал строки, такие как' "4, 6, 8" 'вместо списков, вы могли бы легко векторизовать это, но я не уверен, как векторизовать ваш конкретный формат. –