AFAIK num
не является допустимым атомным векторным классом в R
:
Возможные значения: NA (по умолчанию , когда используется type.convert), "NULL" (когда столбец пропущен), один из классов атомарных векторов (логический, целочисленный, числовой, комплексный, символьный, необработанный) или "коэффициент", «Дата» или «POSIXct». В противном случае должен быть метод as (из методы пакета) для преобразования из «символа» в указанный формальный класс.
Ваш код должен работать, если вы замените его на числовой
:
> DF <- read.csv("data.csv", header = T, sep = ",", colClasses=c('num','num'))Error in methods::as(data[[i]], colClasses[i]) :
no method or default for coercing “character” to “num”
, тогда как
> DF <- read.csv("data.csv", header = T, sep = ",", colClasses=c('numeric','numeric'))
>
> DF
Test test2 test3
1 NA 1 1
2 10.8 -1 1
3 1.1 2 2
>
Когда вы получаете список пакетов из репозитория через apt-get update
, как в / var / lib / apt
, так и в / var / lib / dpkg
вы найдете информацию для всех пакетов в форме
Package: apt
Priority: important
Section: admin
Installed-Size: 3462
Maintainer: APT Development Team <deity@lists.debian.org>
Architecture: i386
Version: 1.3.1
Replaces: apt-utils (<< 1.3~exp2~)
Depends: adduser, gpgv | gpgv2 | gpgv1, debian-archive-keyring, init-system-helpers (>= 1.18~), libapt-pkg5.0 (>= 1.3~rc2), libc6 (>= 2.15), libgcc1 (>= 1:4.2), libstdc++6 (>= 5.2)
Recommends: gnupg | gnupg2 | gnupg1
Suggests: apt-doc, aptitude | synaptic | wajig, dpkg-dev (>= 1.17.2), powermgmt-base, python-apt
Breaks: apt-utils (<< 1.3~exp2~)
Filename: pool/main/a/apt/apt_1.3.1_i386.deb
Size: 1208426
MD5sum: 9d35afa0f8220cabf0c837f8073569c2
Description: commandline package manager
Description-md5: 9fb97a88cb7383934ef963352b53b4a7
Tag: admin::package-management, devel::lang:ruby, hardware::storage,
hardware::storage:cd, implemented-in::c++, implemented-in::perl,
implemented-in::ruby, interface::commandline, network::client,
protocol::ftp, protocol::http, protocol::ipv6, role::program,
scope::application, scope::utility, sound::player, suite::debian,
use::downloading, use::organizing, use::searching, works-with::audio,
works-with::software:package, works-with::text
SHA256: 9111e4e9ffe3f3dd3c62c4e67485d3495c15bf5d24f4f1c532db4430b389eb19
. Эта информация также присутствует в виде файла debian / control
в каждом пакете .deb
. Как видите, он содержит строку Depends: ...
, в которой перечислены все зависимости. Из этих зависимостей apt-get
рекурсивно вычисляет все пакеты, которые необходимо установить.
Когда пакет создается, эта информация добавляется сопровождающим пакета (хотя есть некоторые инструменты, помогающие с этим), аналогично тому, как вы вручную добавляете пакеты, когда сами компилируете.
Когда вы пытаетесь установить (используя dpkg -i
) некоторый *. Deb
пакет с отсутствующей (неудовлетворенной) зависимостью, вы получаете сообщение об ошибке, в котором упоминаются отсутствующие пакеты. Затем вы можете apt-get install
или aptitude install
эти недостающие пакеты.
Человек, который упаковал файл .deb
в первую очередь, выполнил процедуру, аналогичную той, что вы опишите для ручной установки. Когда они это сделали (если они сделали свою работу правильно), они также добавили информацию о необходимых зависимостях в файл debian / control
исходного пакета.
apt-get
и другие внешние интерфейсы dpkg
действительно работают исключительно с пакетами .deb
и связанной с ними базой данных пакетов с метаинформацией об этих пакетах. Иногда вы хотите создать пакет локального программного обеспечения .deb
, чтобы вся цепочка работала правильно, и вы получали преимущества автоматической установки зависимостей и т. Д.