Я пытаюсь разбить строки имен столбцов на отдельные столбцы, но проблема, с которой я сталкиваюсь, заключается в том, что строки имеют логические значения. Есть несколько сообщений, в которых столбцы разделяются строками в строках, но я не смог найти сообщений с логическими значениями.
Мой data.frame выглядит примерно так:
mydf <- data.frame (author = c("N1", "N2", "N3"),
Aa..Ab = c(T, T, F),
BB = c(T, F, T),
Ca...Cb = c(F, F, T))
Результат должен выглядеть примерно так
mydfnew <- data.frame (author = c("N1", "N2", "N3"),
Aa = c(T, T, F),
Ab = c(T, T, F),
BB = c(T, F, T),
Ca = c(F, F, T),
Cb = c(F, F, T))
Я попытался настроить код, который разделяет столбцы и имена (Разделение символа в столбце и имени) следующим образом:
splitCol <- function(dataframe, splitVars=names(dataframe)){
split.DF <- dataframe[,splitVars]
keep.DF <- dataframe[, !names(dataframe) %in% c(splitVars)]
X <- function(x)matrix(unlist(rep(x)), byrow=TRUE)
newdf <- as.data.frame(do.call(cbind, suppressWarnings(lapply(split.DF, X))) )
names(newdf) <- paste(rep(names(split.DF), each=2), c(".a", ".b"), sep="")
data.frame(keep.DF,newdf)
}
При звонке
splitCol(mydf)
Я получаю сообщение об ошибке:
Ошибка в именах (newdf) ‹- paste (rep (names (split.DF), each = 2), c (". A ",: атрибут 'names' [8] должен иметь ту же длину, что и вектор [4])