Метод 1: (извлечение из длинного вектора с помощью seq ()
> inp <- scan(textConnection("Cat 14 Dog 15 Horse 16"), what="character")
Read 6 items
> data.frame(animal = inp[seq(1,length(inp), by=2)],
numbers =as.numeric(inp[seq(2,length(inp), by=2)]))
animal numbers
1 Cat 14
2 Dog 15
3 Horse 16
Метод 2: (использование аргумента "what" для сканирования для получения большего эффекта)
> inp <- data.frame(scan(textConnection("Cat 14 Dog 15 Horse 16"),
what=list("character", "numeric")))
Read 3 records
> names(inp) <- c("animals", "numbers")
> inp
animals numbers
1 Cat 14
2 Dog 15
3 Horse 16
Thisявляется усовершенствованием метода 2: (беспокоился о возможности очень длинных имен столбцов в результате сканирования (), поэтому я снова прочитал страницу справки и добавил имена к значениям аргумента what:
inp <- data.frame(scan(textConnection("Cat 14 Dog 15 Horse 16"),
what=list( animals="character",
numbers="numeric")))
Read 3 records
> inp
animals numbers
1 Cat 14
2 Dog 15
3 Horse 16