У меня есть большая таблица данных (около 24000 строк и растет). Я хочу подмножить этот тип данных, основанный на нескольких критериях и из этого подмножества (заканчивается примерно 3000 строк). Я хочу случайным образом пробовать всего 4 строки. Я не хочу создавать именованные 3000 или около того строк data.table, подсчитывать его строки, а затем пример на основе номера строки. Как я могу сделать это на лету? Или я должен просто сосать его, создав таблицу, а затем работая над ней, сэмплируя ее, а затем используя rm()
, чтобы избавиться от нее?
Позволяет моделировать мою проблему
require(data.table)
random.length <- sample(x = 15:30, size = 1)
data.table(city=sample(c("Cape Town", "New York", "Pittsburgh", "Tel Aviv", "Amsterdam"), size=random.length, replace = TRUE), score = sample(x=1:10, size = random.length, replace=TRUE))
Это делает таблицу случайных длин, которая имитирует тот факт, что в зависимости от моих критериев и в зависимости от моей стартовой таблицы я не знаю, какая длина поднаборной таблицы с
Теперь, если мне просто нужны первые три строки, я мог бы сделать так
data.table(city=sample(c("Cape Town", "New York", "Pittsburgh", "Tel Aviv", "Amsterdam"), size=random.length, replace = TRUE), score = sample(x=1:10, size = random.length, replace=TRUE))[1:3]
Но скажем, мне не нужны первые три строки, а скорее случайные 3 строки, тогда я хотел бы сделать что-то вроде этого...
data.table(city=sample(c("Cape Town", "New York", "Pittsburgh", "Tel Aviv", "Amsterdam"), size=random.length, replace = TRUE), score = sample(x=1:10, size = random.length, replace=TRUE))[sample(x= 1:number of rows of that previous data.table,size = 3 ]
Это не сработает. Как я могу вычислить, на лету, какова длина начального файла data.frame?