Извините, если это основной вопрос. Я новичок. Любые направления очень ценятся.создавать и заполнять столбцы в dataframe в R
У меня df1, как показано ниже (POSIXct) (135 строк)
> head(df1)
uniqueSessionsIni uniqueSessionsEnd
1 2015-01-05 15:00:00 2015-01-05 15:59:00
2 2015-01-05 15:00:00 2015-01-05 15:59:00
3 2015-01-05 15:00:00 2015-01-05 15:59:00
вектор имена - с именами для новых 600 столбцов, как показано ниже.
> head(names)
[1] "m0p0" "m1p0" "m2p0" "m3p0" "m4p0" "m5p0"...
и
> head(allPairs)
Var1 Var2 names
1 1 0 m1p0
2 1 1 m1p1
Я хочу, чтобы заполнить все строки df1, столбцы 4 до 603 со значениями на основе: вектор имена - названия для новых 600 столбцов, как показано ниже. uniqueSessionsIni Var1 + Var2.
Вы заметите, что Var1 соответствует цифре после «m» в столбце. имена, а Var2 соответствует цифре после «p» в именах.
Результат будет примерно таким (но с большим количеством столбцов).
> head(df1)
uniqueSessionsIni uniqueSessionsEnd m1p0 m1p1
1 2015-01-05 15:00:00 2015-01-05 15:59:00 2015-01-05 15:01:00 2015-01-05 15:02:00
2 2015-01-05 16:00:00 2015-01-05 15:59:00 2015-01-05 16:01:00 2015-01-05 16:02:00
3 2015-01-05 17:00:00 2015-01-05 15:59:00 2015-01-05 17:01:00 2015-01-05 17:02:00
Я попытался следующий код, чтобы создать новые столбцы в df1:
df1[,names] <- NA
Это успешно создает новые столбцы и заполнит с НС
Так что я пытаюсь создать условие с петлей для заполнения этих новых колонок (от 3 до 603) с кодом
df1[,names] <- for (i in df1$timestamps)
df1$uniqueSessionsIni + (as.posix(allPairs$Var1) + (as.posix(allPairs$Var2)
Но R отвечает так, как если бы выражение было неполным (+). Это вопрос синтаксической ошибки? Или мне нужно другое решение, чтобы заполнить новые столбцы?
Спасибо заранее.
Это не ясно. Кажется, вам нужен только один столбец, как вы это говорите. Вам нужно сделать свой пример воспроизводимым, то есть предоставить некоторые реальные данные и показать нам, что вы хотите, чтобы результат был (за меньшие столбцы, чем 603). – LyzandeR
В R, создающем и заполняющем столбец data.frame, обычно должен быть один шаг. Кроме того, R чувствителен к регистру, и круглые скобки должны совпадать. Изучите документацию о функциях, которые вы хотите использовать, и воспользуйтесь векторизацией (использование циклов 'for' должно быть исключением в вашей повседневной работе). – Roland
Благодарим вас за отзыв. Я отредактировал, как предложил @LyzandeR. – jpinelo