Есть ли простой способ создания столбцов внутри цикла for?Я знаю, что этот вопрос задавался здесь несколько раз, и я попробовал это решение, приспособленное к моему случаю
for (i in 1:100) {
eval(parse(text = paste0('a$colum', i, ' <- whatever_you_want_your_column_to_contain')))
}
из одного из постов, но это не помогло.У меня есть данные таблицы данных, и я пытаюсь создать столбцы с P_1 по P_30 в цикле for, а затем назначить их NULL (я просто пытаюсь предварительно определить столбцы).Я пробовал это:
for (i in 1:30) {
eval(parse(text = paste0('data$P_', i, ' <- NULL')))
}
, но безуспешно.Можете ли вы предложить какой-либо подход, который будет работать?
Смежный вопрос - как ссылаться на эти столбцы в другом цикле, если у меня снова есть столбец P_i, где i от 1 до 30, как ссылаться на данные $ P_i внутри цикла?
Редактировать:
У меня есть эта таблица данных, чтобы привести пример:
customer_id <- c("1","1","1","2","2","2","2","3","3","3")
account_id <- as.character(c(11,11,11,55,55,55,55,38,38,38))
obs_date <- c(as.Date("2017-01-01","%Y-%m-%d"), as.Date("2017-02-01","%Y-%m-%d"), as.Date("2017-03-01","%Y-%m-%d"),
as.Date("2017-12-01","%Y-%m-%d"), as.Date("2018-01-01","%Y-%m-%d"), as.Date("2018-02-01","%Y-%m-%d"),
as.Date("2018-03-01","%Y-%m-%d"), as.Date("2018-04-01","%Y-%m-%d"), as.Date("2018-05-01","%Y-%m-%d"),
as.Date("2018-06-01","%Y-%m-%d"))
variable <- c(87,90,100,120,130,150,12,13,15,14)
data <- data.table(customer_id,account_id,obs_date,variable)
, и я обнаружил, что проблема действительно в том, чтобы присвоить этому столбцу значение NULL.потому что когда я делаю это, основываясь на совете поста:
for (i in 1:30) {
eval(parse(text = paste0('data$P_', i, ' <- 1')))
}
это действительно работает, просто с NULL вместо 1 это не так.Так что это не плохой совет, просто он не работает с NULL.