r - وأعمدة - طريقة ادراج صفوف في الجدول




كيفية إضافة عمود جديد بين أعمدة داتافريم أخرى؟ (3)

أريد إضافة عمود جديد مع "نا" في داتافريم:

     A       B
1    14379  32094
2   151884  174367
3   438422  449382

ولكن أنا في حاجة إليها أن يكون موجودا بين كول. A و B، مثل هذا:

     A       C      B
1    14379   NA    32094
2   151884   NA    174367
3   438422   NA    449382

أنا أعرف كيفية إضافة كول. C بعد الكول. B، ولكن هذا ليس مفيدا بالنسبة لي ... أي شخص يعرف كيف نفعل ذلك؟ شكر!!!


إذا كنت تستخدم data.table يمكنك استخدام setcolorder وظيفة. لاحظ أنه يتم تخزين NA كمتغير منطقي، إذا كنت تريد أن يبدأ العمود كعمود صحيح أو مزدوج أو حرف، يمكنك استخدام NA_real_ أو NA_character_ أو NA_character_

على سبيل المثال

library(data.table)
DT <- data.table(DF)
# add column `C`  = NA 

DT[, C := NA]

setcolorder(DT, c('A','C','B'))
DT
##         A  C      B
## 1:  14379 NA  32094
## 2: 151884 NA 174367
## 3: 438422 NA 449382

يمكنك القيام بذلك في سطر واحد

setcolorder(DT[, C: = NA], c('A','B','C'))

في خطوتين، يمكنك إعادة ترتيب الأعمدة:

dat$C <- NA
dat <- dat[, c("A", "C", "B")]
         A  C          B
1  0.596068 NA -0.7783724
2 -1.464656 NA -0.8425972

يمكنك أيضا استخدام append

dat <- data.frame(A = rnorm(2), B = rnorm(2))
as.data.frame(append(dat, list(C = NA), after = 1))

           A   C          B
1 -0.7046408  NA  0.2117638
2  0.8402680  NA -2.0109721

يمكنك أيضا استخدام الحزم الحزمة، التي لديها وظيفة مثيرة جدا للاهتمام (من بين العديد من غيرها) لذلك: add_column ()

library(tibble)
df <- data.frame("a" = 1:5, "b" = 6:10)
add_column(df, c = rep(NA, nrow(df)), .after = 1)

هذه الدالة سهلة الاستخدام، ويمكنك استخدام الوسيطة. قبل ذلك بدلا من ذلك.





add