Это можно сделать немного более компактно с Matrix:::sparse.model.matrix
, хотя требование иметь все столбцы для всех переменных делает вещи немного сложнее.
Сгенерировать вход:
set.seed(123)
n <- 6
df <- data.frame(x = sample(c("A", "B", "C"), n, TRUE),
y = sample(c("D", "E"), n, TRUE))
Если вам не нужны все столбцы для всех переменных, которые вы могли бы просто сделать:
library(Matrix)
sparse.model.matrix(~.-1,data=df)
Если вам нужны все столбцы:
fList <- lapply(names(df),reformulate,intercept=FALSE)
mList <- lapply(fList,sparse.model.matrix,data=df)
do.call(cBind,mList)
Вы можете выполнять команды вместе, например так:
npm run build -- --c demo && npm run build -- --c demo1
Или вы можете указать свою собственную команду, используя пакетные скрипты json:
{
"name": "myApp",
"version": "0.0.0",
"engines": {
"node": "10.13.0",
"npm": "6.4.1"
},
"scripts": {
"test": "jest src/app",
"test:watch": "jest src/app --watch",
"lint": "tslint -c tslint.json 'src/app/**/*.ts' --project src/tsconfig.json",
"appStart": "npm run build -- --c demo && npm run build -- --c demo1" // This line
},
}
Затем просто запустите
[ 112]Примечание:
Есть еще несколько вариантов, которые можно использовать для одновременного выполнения нескольких команд, вот шпаргалка :
A; B # Run A and then B, regardless of success of A
A && B # Run B if and only if A succeeded
A || B # Run B if and only if A failed
A & # Run A in background.