Оператор R - $ недействителен для атомных векторов [duplicate]

Вот еще один способ с помощью только R:

source2 <- function(file, start, end, ...) {
    file.lines <- scan(file, what=character(), skip=start-1, nlines=end-start+1, sep='\n')
    file.lines.collapsed <- paste(file.lines, collapse='\n')
    source(textConnection(file.lines.collapsed), ...)
}
7
задан Brian Tompsett - 汤莱恩 1 May 2017 в 22:18
поделиться

2 ответа

Вы должны думать о табличных объектах как о матрицах, из которых 2D наследуют все свои свойства индексирования (так что [ dim-indices ]):

is.matrix(tab)   # returns TRUE

Если у вас есть таблица больше 2d, она будет естественно наследуют его функции доступа от класса массива. Единственным (типичным) классом данных, который использует «$» в качестве доступа, является список (из которого наследуются наборы данных). Попробуйте:

tab[ , 1]  # Or
tab[ , "Cleveland"]

(я полагаю, я не был бы так категоричен в отношении «$». Вы можете получить доступ к элементам некоторых объектов языка и объектов среды с помощью этого аксессора, поскольку они ведут себя как списки.)

3
ответ дан 42- 16 August 2018 в 02:36
поделиться

Вы ищете

table(tabraw$V1)
# 
# CA CO OH 
#  1  1  2

Объект tab является объектом таблицы классов и не поддерживает функцию $.

Вы также можете получить желаемая информация от объекта tab с

rowSums(tab)
# CA CO OH 
#  1  1  2 
6
ответ дан Sven Hohenstein 16 August 2018 в 02:36
поделиться
Другие вопросы по тегам:

Похожие вопросы: