При подаче только одного номера sample
работает как sample.int
(см. ?sample
). Если вы хотите убедиться, что это только образцы из вектора, который вы ему даете, вы можете работать с индексами и использовать эту конструкцию:
x[sample(length(x))]
Это дает правильный результат независимо от длины x
, и без необходимости добавлять условие if
, проверяющее длину.
Пример:
mylist <- list(
a = 5,
b = c(2,4),
d = integer(0)
)
mysample <- lapply(mylist,function(x) x[sample(length(x))])
> mysample
$a
[1] 5
$b
[1] 2 4
$d
integer(0)
Примечание: вы можете заменить sample
на sample.int
, чтобы получить небольшое усиление скорости.
Попробуйте это.
public static void main(String[] args) throws IOException {
File directory = new File(".");
File[] files = directory.listFiles();
System.out.println("All files and directories:");
displayFiles(files);
String pattern = "20190215/"+"taxonomy_[*].txt";
System.out.println("\nFiles that match regular expression: " + pattern);
FileFilter filter = new RegexFileFilter(pattern);
files = directory.listFiles(filter);
displayFiles(files);
}
public static void displayFiles(File[] files) {
for (File file : files) {
System.out.println(file.getName());
}
}