Используйте функцию sample()
для перетасовки строк в CSV-файле (data.frame
) или перетасовки объектов vector
объектов
Вход
Если входной файл CSV имеет несколько строк
Test <- read.table("MapTest.csv", header = FALSE, sep = ",")
Test
# V1 V2 V3
# 1 Heaven Air Flower
# 2 Earth Lily Jazz
# 3 Hell Dance Tennis
# 4 Sweet Sour Bitter
dim(Test)
# [1] 4 3
Перемешивание строк
Выполнение его несколько раз, каждый раз перетасовывается каждый раз
Test[sample(1:nrow(Test)),]
# V1 V2 V3
# 2 Earth Lily Jazz
# 4 Sweet Sour Bitter
# 3 Hell Dance Tennis
# 1 Heaven Air Flower
Test[sample(1:nrow(Test)),]
# V1 V2 V3
# 3 Hell Dance Tennis
# 1 Heaven Air Flower
# 2 Earth Lily Jazz
# 4 Sweet Sour Bitter
Выбор двух строк после перетасовки
Выбор двух строк после перетасовки числа строк в файле CSV.
Test[sample(1:nrow(Test), 2),]
# V1 V2 V3
# 4 Sweet Sour Bitter
# 1 Heaven Air Flower
Test[sample(1:nrow(Test), 2),]
# V1 V2 V3
# 4 Sweet Sour Bitter
# 3 Hell Dance Tennis
Перемешивание объектов каждой строки в файле CSV с несколькими строками
lapply(1:nrow(Test), function(x) sample(Test[x,]))
# [[1]]
# V1 V3 V2
# 1 Heaven Flower Air
#
# [[2]]
# V3 V2 V1
# 2 Jazz Lily Earth
#
# [[3]]
# V2 V3 V1
# 3 Dance Tennis Hell
#
# [[4]]
# V3 V1 V2
# 4 Bitter Sweet Sour
Вход
Если вход имеет 1 строку: объекты разделены запятыми
Test <- read.table("MapTest.csv", header = FALSE, sep = ",")
dim(Test)
# [1] 1 12
Test
# V1 V2 V3 V4 V5 V6 V7 V8 V9 V10 V11 V12
# 1 Heaven Air Flower Earth Lily Jazz Hell Dance Tennis Sweet Sour Bitter
Перетасовка объектов CSV-файла с помощью 1 строки
Это приведет к разным, если выполняется несколько раз ,
sample(Test)
# V5 V4 V1 V6 V8 V9 V2 V10 V12 V11 V7 V3
# 1 Lily Earth Heaven Jazz Dance Tennis Air Sweet Bitter Sour Hell Flower
sample(Test)
# V4 V7 V1 V12 V3 V11 V8 V5 V10 V9 V6 V2
# 1 Earth Hell Heaven Bitter Flower Sour Dance Lily Sweet Tennis Jazz Air
Если нет файла CSV-файла
Создайте вектор объектов в R
Map_vec <- c("Hell","Heaven","Flower","Water","Air","Sky")
Map_vec
# [1] "Hell" "Heaven" "Flower" "Water" "Air" "Sky"
length(Map_vec)
# [1] 6
Shuffling Vector
] sample(Map_vec)
# [1] "Flower" "Sky" "Heaven" "Air" "Hell" "Water"
sample(Map_vec)
# [1] "Water" "Heaven" "Sky" "Hell" "Air" "Flower"
Перетасовка и выбор нескольких из вектора
sample(Map_vec, 3)
# [1] "Heaven" "Sky" "Hell"
sample(Map_vec, 3)
# [1] "Heaven" "Sky" "Air"
Я нашел ответ на это. Я предполагаю, что я создавал бесконечный цикл кода из внешнего ключа в той же таблице в базе данных. Я только что удалил внешний ключ и все работает нормально.