Извлечь столбец из data.table как вектор, по позиции
57086 просмотра
2 ответа
Как извлечь столбец из data.table в виде вектора по его позиции? Ниже приведены некоторые фрагменты кода, которые я пробовал:
DT<-data.table(x=c(1,2),y=c(3,4),z=c(5,6))
DT
# x y z
#1: 1 3 5
#2: 2 4 6
Я хочу получить этот вывод, используя положение столбца
DT$y
#[1] 3 4
is.vector(DT$y)
#[1] TRUE
Другой способ получить этот вывод, используя положение столбца
DT[,y]
#[1] 3 4
is.vector(DT[,y])
#[1] TRUE
Это не дает вектора
DT[,2,with=FALSE]
# y
#1: 3
#2: 4
is.vector(DT[,2,with=FALSE])
#[1] FALSE
Эти двое не работают:
DT$noquote(names(DT)[2]) # Doesn't work
#Error: attempt to apply non-function
DT[,noquote(names(DT)[2])] # Doesn't work
#[1] y
И это не дает вектора:
DT[,noquote(names(DT)[2]),with=FALSE] # Not a vector
# y
#1: 3
#2: 4
is.vector(DT[,noquote(names(DT)[2]),with=FALSE])
#[1] FALSE
Автор: Wet Feet
Источник
Размещён: 12.11.2019 09:48
Ответы (2)
91 плюса
Таблица данных наследуется от класса data.frame
. Поэтому он является list
внутренним (векторов столбцов) и может рассматриваться как таковой.
is.list(DT)
#[1] TRUE
К счастью, подмножество списков, т. Е. [[
Очень быстрое, и, в отличие от [
пакета data.table, не определяет для него метод. Таким образом, вы можете просто использовать [[
для извлечения по индексу:
DT[[2]]
#[1] 3 4
Автор: Roland
Размещён: 18.11.2013 08:43
3 плюса
DT[,get(names(DT)[colNb])]
где colNb может быть целым числом (желаемый номер столбца) или переменной, содержащей номер столбца.
Автор: lokxs Размещён: 03.06.2018 03:07Вопросы из категории :
- r Как получить доступ к последнему значению в векторе?
- r Пакеты оптимизации для R
- r Есть ли у R такие операторские операции, как Perl qw ()?
- r Библиотека / инструмент для рисования тройных / треугольных графиков
- r Участки без заголовков / надписей в R
- vector Объединение двух стандартных: векторов
- vector Как отсортировать std :: vector по значениям другого std :: vector?
- vector Стирание элементов из вектора
- vector Векторная графика в iText PDF
- indexing Как работает индексация базы данных?
- indexing Как индексировать столбец базы данных
- indexing Как проверить, существует ли индекс для поля таблицы в MySQL?
- indexing Получить индекс n-го вхождения строки?
- indexing Скопировать таблицу (включая индексы) в postgres
- data.table подмножество в data.table
- data.table Подмножество фрейма данных с топ-n строк для каждой группы и упорядочены по переменной
- data.table Когда мне следует использовать оператор: = в data.table?
- data.table Замена NA с последним значением не-NA
- data.table эффективные построчные операции над таблицей данных