Почему это работает,Ошибка при добавлении столбцов со значениями по умолчанию для dataframe с нулевыми строками
# add ONE column to dataframe with zero rows
x <- data.frame(a=character(0))
x["b"] <- character(0)
в то время как это не делает?
# add SEVERAL columns to dataframe with zero rows
x <- data.frame(a=character(0))
x[c("b", "c")] <- character(0)
error in value[[jvseq[[jjj]]]] : index out of limits [... freely translated]
Обратите внимание, что это совершенно нормально, если у нас есть ненулевые строки.
x <- data.frame(a=1)
x["b"] <- NA
x <- data.frame(a=1)
x[c("b", "c")] <- NA
А что будет простая альтернатива, чтобы добавить несколько столбцов в ноль dataframes строк?
'cbind (х, Ь = символ (0), с = символ (0))'. – r2evans
'cbind (x, as.data.frame (matrix (0, ncol = 42, nrow = 0)))' для многих столбцов. –
К сожалению, это не помогает мне, поскольку я не знаю заранее, какие имена столбцов будут. Во всяком случае, я мог бы, конечно, цикл: 'for (m in c (" a "," b ")) x [[m]] <- character (0)' –