Вот еще один способ с помощью только 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), ...)
}
Вы должны думать о табличных объектах как о матрицах, из которых 2D наследуют все свои свойства индексирования (так что [ dim-indices ]
):
is.matrix(tab) # returns TRUE
Если у вас есть таблица больше 2d, она будет естественно наследуют его функции доступа от класса массива. Единственным (типичным) классом данных, который использует «$» в качестве доступа, является список (из которого наследуются наборы данных). Попробуйте:
tab[ , 1] # Or
tab[ , "Cleveland"]
(я полагаю, я не был бы так категоричен в отношении «$». Вы можете получить доступ к элементам некоторых объектов языка и объектов среды с помощью этого аксессора, поскольку они ведут себя как списки.)
Вы ищете
table(tabraw$V1)
#
# CA CO OH
# 1 1 2
Объект tab
является объектом таблицы классов и не поддерживает функцию $
.
Вы также можете получить желаемая информация от объекта tab
с
rowSums(tab)
# CA CO OH
# 1 1 2