The tiga teratas jawaban memiliki kelemahan.
Jika kerangka data Anda terlihat seperti ini
df <- data.frame(Time=c(1,2), In=c(2,3), Out=c(3,4), Files=c(4,5))
> df
Time In Out Files
1 1 2 3 4
2 2 3 4 5
maka itu solusi yang buruk untuk digunakan
> df2[,c(1,3,2,4)]
Itu berhasil, tetapi Anda baru saja memperkenalkan ketergantungan pada urutan kolom pada input Anda.
Gaya pemrograman rapuh ini harus dihindari.
Penamaan eksplisit kolom adalah solusi yang lebih baik
data[,c("Time", "Out", "In", "Files")]
Plus, jika Anda bermaksud untuk menggunakan kembali kode Anda dalam pengaturan yang lebih umum, Anda bisa
out.column.name <- "Out"
in.column.name <- "In"
data[,c("Time", out.column.name, in.column.name, "Files")]
yang juga cukup bagus karena sepenuhnya mengisolasi literal. Sebaliknya, jika Anda menggunakan dplyrselect
data <- data %>% select(Time, out, In, Files)
maka Anda akan mengatur orang-orang yang akan membaca kode Anda nanti, termasuk diri Anda sendiri, untuk sedikit penipuan. Nama kolom digunakan sebagai literal tanpa muncul dalam kode.
help(Extract)
juga dikenal sebagai?'['