0

Предположим, что у вас есть некоторый объект R, такой data.frame и разрешенная матрица Quanteda DFM. Вы хотите реплицировать объект того же размера, но не нужно копировать содержимое.R: Лучший способ реплицировать объект такого же размера и типа другого?

Есть ли какая-нибудь команда R для копирования любого объекта без копирования содержимого? И если да, то они работают над разреженными объектами и не разреженными объектами?

ответ

1

это создаст ту же структуру данных, заполненную NA

data("iris") 
iris.mt <- iris[0, ] 
iris.mt[nrow(iris), ] <- NA 

str(iris.mt) 
'data.frame': 150 obs. of 5 variables: 
$ Sepal.Length: num NA NA NA NA NA NA NA NA NA NA ... 
$ Sepal.Width : num NA NA NA NA NA NA NA NA NA NA ... 
$ Petal.Length: num NA NA NA NA NA NA NA NA NA NA ... 
$ Petal.Width : num NA NA NA NA NA NA NA NA NA NA ... 
$ Species  : Factor w/ 3 levels "setosa","versicolor",..: NA NA NA NA NA NA NA NA NA NA ... 
+0

'iris.mt [] <- NA' будет это делать - не нужно, чтобы выбрать столбцы или строки. – thelatemail

+0

Вы также можете использовать 'replace' для запуска идентичного кода в одной строке' iris.mt <- replace (iris ,, NA) ' – thelatemail

+0

@latemail с использованием' iris.mt [] <- NA' делит факторы, если это желательно поддерживать. Хотя использование 'replace', как вы предлагаете, выполняется быстрее. – manotheshark