Я никогда не использовал циклы, но теперь мне нужно повторить одно вычисление несколько раз и хочу сохранить выходные данные в новом фрейме данных.
Я нашел код, который, кажется, подходит, но не работает.Вы можете найти пример очень небольшого числа столбцов
df<-data.frame("running.nr" = 1:5,
"spec1"= c(4,7,2,90,15),
"spec2"= c(3,10,48,10,4),
"spec3"= c(3,10,49,30,3),
"spec4"= c(10,27,99,130,22),
"n.id"= c(9,25,99,100,20))
. Это вычисление, которое мне нужно повторить для более чем 50 столбцов.Вывод должен быть сохранен в новом фрейме данных, также содержащем столбец «running.nr» из df
perc.comp1<-(df[,"spec1"]*100)/df$n.id
perc.comp2<-(df[,"spec2"]*100)/df$n.id
perc.comp3<-(df[,"spec3"]*100)/df$n.id
perc.comp4<-(df[,"spec4"]*100)/df$n.id
df.perc<-data.frame(df$running.nr,
perc.comp1,
perc.comp2,
perc.comp3,
perc.comp4)
Это нерабочий цикл, который я пытался сделать из приведенного выше кода менее повторяющимся:
for(col in names(df)[2:5]) {
df[paste0(col, "_pct")] = df[x] *100/ df$n.id}
Это сообщение об ошибке, которое я получаю: «Ошибка в [.data.frame
(df, x): объект« x »не найден». Однако я также не уверен, что цикл for приводит к тому, что я хочу.Спасибо за ваше время и помощь!