На варианты этого вопроса были даны ответы, но я изо всех сил пытаюсь применить их к моему набору данных как кто-то относительно неопытный в R / программировании. У меня есть несколько фреймов данных, и я пытаюсь использовать цикл for для создания новой переменной, добавляемой в каждый из фреймов данных.
Каждый фрейм данных имеет одни и те же имена столбцов, но фреймы данных представляют разные моменты времени (например, w1 - волна 1, w2 - волна 2 и т. Д.).
Я выполнил цикл for: 1) отменил оценку нескольких элементов, затем 2) вычислил новую переменную, которая представляет собой просто сумму нескольких переменных.
w1
cesd1 cesd2
0 0
1 1
2 1
w2
cesd1 cesd2
3 0
1 2
2 1
waves = list(w1, w2)
for(i in 1:length(waves)) {
waves[[i]]$cesd2R <- abs(waves[[i]]$cesd2 - 3)
waves[[i]]$cesdTot <- with(waves[[i]], cesd1+ cesd2R, na.rm = T)
}
Я хотел бы получить вывод, который включает все предыдущие столбцы в каждом фрейме данных ПЛЮС новые столбцы, которые я вычисляю в цикле («cesd2R» и «cesdTot») в каждом из фреймов данных.
w1
cesd1 cesd2 cesd2R cesdTot
0 0 3 3
1 1 2 3
w2
cesd1 cesd2 cesd2R cesdTot
3 0 3 6
1 2 1 2
Когда я запускаю цикл, я не получаю ошибок, но вроде ничего не происходит. Что мне не хватает? Большое спасибо!
waves
кажутся вашим желаемым результатом, поэтому я не могу воспроизвести вашу проблему. Вы, может быть, не заметили переназначения результатов в спискеwaves
обратно наw1
иw2
? - person teunbrand   schedule 16.05.2019