Как подставить строки в строку - PullRequest
1 голос
/ 20 мая 2019

Я хочу использовать function для повторного составления набора с разными именами.

например, если у меня есть 5 случайных векторов.

number1<-sample(1:10, 3)
number2<-sample(1:10, 3)
number3<-sample(1:10, 3)
number4<-sample(1:10, 3)
number5<-sample(1:10, 3)

Затем я буду использовать эти векторы для выбора строк в наборе необработанных данных (т.е. в фрейме данных)

testset1<-raw[number1,]
testset2<-raw[number2,]
testset3<-raw[number3,]
tsetset4<-raw[number4,]
testset5<-raw[number5,]

Для написания каждой команды требуется много пробелов в рукописи. Я пытаюсь сократить эти команды с помощью 'function'

Однако я обнаружил, что трудно использовать переменные в операторе функции для записи «текстового аргумента». Например, такие переменные легко использовать.

mean_function<-function(x){
mean(x)
}

Но я хочу использовать такую ​​функцию.

testset "number with 1-5" <-raw[number"number 1-5",]

Буду очень признателен за вашу помощь.

1 Ответ

1 голос
/ 20 мая 2019

Вам не нужно создавать функцию для этой задачи, просто используйте lapply, чтобы перебрать список элементов, созданных mget(), затем задать несколько имен и, наконец, поместить все результаты в глобальную среду:

rowSelected <-lapply(mget(paste0("number", 1:5)), function(x) raw[x, ])
names(rowSelected) <- paste0("testset", 1:5)
list2env(rowSelected, envir = .GlobalEnv)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...