Некоторые библиотеки поддерживают чтение CSV-файлов и указание строк для чтения как пропущенных значений.Я чаще всего использую библиотеку readr
.Тогда вы можете просто использовать na.omit
и аналогичные функции.
library(readr)
library(dplyr)
heart <- read_csv(
'http://archive.ics.uci.edu/ml/machine-learning-databases/echocardiogram/echocardiogram.data',
na=c("", "?")
)
colnames(heart) <- recode(
colnames(heart),
"X11" = "survival",
"X0" = "alive",
"X71" = "attackAge",
"X0.1" = "pericardialEffusion",
"X0.260" = "fractionalShortening",
"X9" = "epss",
"X4.600" = "lvdd",
"X14" = "wallMotionScore",
"X1" = "wallMotionIndex",
"X1.1" = "mult",
"name" = "patientName",
"X1.2" = "group",
"X0.2" = "aliveAfterYear"
)
heart
heart <- na.omit(heart)
(Также вы можете сэкономить некоторую печать с помощью функции recode
из пакета dplyr
, но ваше решение для переименования столбцов работает какхороший.)