#r #datatable #rbind
Вопрос:
Мне нужно назначить вектор символов, который будет находиться в первой строке в базе данных R. Но пока все мои попытки сводятся к тому, чтобы оказаться на последнем месте. Когда я попытался указать номер строки, он выдает предупреждения о количестве столбцов. Это единственное, что работает, но до последней строки.
Character_vector <- colnames(DT)
DT_NEW <- rbind(DT,as.list(Character_vector, ))
DT_NEW
Ответ №1:
Используйте другой порядок аргументов внутри rbind
и правильный способ построения строки с именами столбцов:
library(datatable)
DT = data.table(a=c("a1","a2","a3"),
b=c("b1","b2","b3"),
c=c("c1","c2","c3"))
Character_vector = colnames(DT)
result = rbind(setnames(do.call(data.table,
as.list(Character_vector)),
Character_vector),
DT)
чтобы получить такой кадр:
> result
a b c
1: a b c
2: a1 b1 c1
3: a2 b2 c2
4: a3 b3 c3
Чтобы развернуть все, что происходит, — это rbind
одна строка имен столбцов и исходный кадр DT
в указанном порядке:
single_row_with_col_names = do.call(data.table, as.list(Character_vector))
setnames(single_row_with_col_names, Character_vector)
result = rbind(single_row_with_col_names,
DT)