我必須刪除我的數據幀中有4000列和180行的列。我想設置的條件以刪除數據幀中的列: (i)刪除(ii)如果列中沒有兩個連續的(一個接一個) 值,則移除該列(如果該列中的值不足兩個值/條目) 。 (iii)刪除所有值爲NA的列。 我已經提供了要刪除列的條件。這裏的目的不僅僅在於如何在「如何刪除data.table中的列」中找到其名稱的列。 我舉例說明如下:基於R中的條件刪除數據幀的列
A B C D E
0.018 NA NA NA NA
0.017 NA NA NA NA
0.019 NA NA NA NA
0.018 0.034 NA NA NA
0.018 NA NA NA NA
0.015 NA NA NA 0.037
0.016 NA NA NA 0.031
0.019 NA 0.4 NA 0.025
0.016 0.03 NA NA 0.035
0.018 NA NA NA 0.035
0.017 NA NA NA 0.043
0.023 NA NA NA 0.040
0.022 NA NA NA 0.042
期望中的數據框:
A E
0.018 NA
0.017 NA
0.019 NA
0.018 NA
0.018 NA
0.015 0.037
0.016 0.031
0.019 0.025
0.016 0.035
0.018 0.035
0.017 0.043
0.023 0.040
0.022 0.042
我怎樣才能在一個代碼incoporate這三個條件。我很感謝你在這方面的幫助。 重複的例子,
structure(list(Month = c("Jan-2000", "Feb-2000", "Mar-2000",
"Apr-2000", "May-2000", "Jun-2000"), A.G.L.SJ.INVS...LON..DEAD...13.08.15 = c(NA_real_,
NA_real_, NA_real_, NA_real_, NA_real_, NA_real_), ABACUS.GROUP.DEAD...18.02.09 = c(0.00829384766220866,
0.00332213653674028, 0, 0, NA, NA), ABB.R..IRS. = c(NA_real_,
NA_real_, NA_real_, NA_real_, NA_real_, NA_real_)), .Names = c("Month",
"A.G.L.SJ.INVS...LON..DEAD...13.08.15", "ABACUS.GROUP.DEAD...18.02.09",
"ABB.R..IRS."), class = c("data.table", "data.frame"), row.names = c(NA,
-6L), .internal.selfref = <pointer: 0x0000000001c90788>)
對於(I)以除去柱:'DF [,sapply(DF,函數(x)的sum(!is.na(x))> 1)]' – jogo
@Frank這裏刪除列是根據條件而不是名稱。 – Aquarius
@Aquarius在鏈接q中,這些也是條件。它們只是基於名稱而非價值向量的條件。我不認爲它本質上不同。我也認爲目標鏈接是有幫助的,因爲它顯示':= NULL',這是如何通過引用刪除列(而不是創建一個全新的表)。 – Frank