¿Existe una función R equivalente al comando 'orden' de Stata?

'orden' en R parece ser 'ordenado' en Stata. Aquí hay un conjunto de datos, por ejemplo (solo se enumeran los nombres de las variables):

v1 v2 v3 v4 v5 v6 v7 v8 v10 v10 v12 v13 v14 v15 v16 v17 v18

y aquí está la salida que espero:

v1 v2 v3 v4 v5 v7 v8 v10 v11 v12 v17 v18 v13 v14 v15 v6 v16

En R, tengo 2 maneras:

data <- data[,c(1:5,7:12,17:18,13:15,6,16)]

O

names <- c("v1", "v2", "v3", "v4", "v5", "v7", "v8", "v9", "v10", "v11", "v12",  "v17", "v18", "v13", "v14", "v15", "v6", "v16")
data <- data[names]

Para obtener la misma salida en Stata, puedo ejecutar 2 líneas:

order v17 v18, before(v13)
order v6 v16, last

En los datos ideales de arriba, podemos conocer las posiciones de las variables que queremos tratar. Pero en la mayoría de los casos reales, tenemos variables como 'edad' 'género' sin indicadores de posición y podemos tener más de 50 variables en un conjunto de datos. Entonces la ventaja de "orden" en Stata podría ser más obvia. No necesitamos saber el lugar exacto de la variable y simplemente escribir su nombre:

order age, after(gender)

¿Existe una función básica en R para solucionar este problema o puedo obtener un paquete? Gracias por adelantado.

tweetinfo <- data.frame(uid=1:50, mid=2:51, annotations=3:52, bmiddle_pic=4:53, created_at=5:54, favorited=6:55, geo=7:56, in_reply_to_screen_name=8:57, in_reply_to_status_id=9:58, in_reply_to_user_id=10:59, original_pic=11:60, reTweetId=12:61, reUserId=13:62, source=14:63, thumbnail_pic=15:64, truncated=16:65)
noretweetinfo <- data.frame(uid=21:50, mid=22:51, annotations=23:52, bmiddle_pic=24:53, created_at=25:54, favorited=26:55, geo=27:56, in_reply_to_screen_name=28:57, in_reply_to_status_id=29:58, in_reply_to_user_id=30:59, original_pic=31:60, reTweetId=32:61, reUserId=33:62, source=34:63, thumbnail_pic=35:64, truncated=36:65)
retweetinfo <- data.frame(uid=41:50, mid=42:51, annotations=43:52, bmiddle_pic=44:53, created_at=45:54, deleted=46:55, favorited=47:56, geo=48:57, in_reply_to_screen_name=49:58, in_reply_to_status_id=50:59, in_reply_to_user_id=51:60, original_pic=52:61, source=53:62, thumbnail_pic=54:63, truncated=55:64)
tweetinfo$type <- "ti"
noretweetinfo$type <- "nr"
retweetinfo$type <- "rt"
gtinfo <- rbind(tweetinfo, noretweetinfo)
gtinfo$deleted=""
gtinfo <- gtinfo[,c(1:16,18,17)]
retweetinfo <- transform(retweetinfo, reTweetId="", reUserId="")
retweetinfo <- retweetinfo[,c(1:5,7:12,17:18,13:15,6,16)]
gtinfo <- rbind(gtinfo, retweetinfo)
write.table(gtinfo, file="C:/gtinfo.txt", row.names=F, col.names=T, sep="\t", quote=F)
# rm(list=ls(all=T))

Respuestas a la pregunta(5)

Su respuesta a la pregunta