[英]remove character columns from a numeric data frame
我有一個像你在這里看到的數據框。
DRSi TP DOC DN date Turbidity Anions
158 5.9 3371 264 14/8/06 5.83 2246.02
217 4.7 2060 428 16/8/06 6.04 1632.29
181 10.6 1828 219 16/8/06 6.11 1005.00
397 5.3 1027 439 16/8/06 5.74 314.19
2204 81.2 11770 1827 15/8/06 9.64 2635.39
307 2.9 1954 589 15/8/06 6.12 2762.02
136 7.1 2712 157 14/8/06 5.83 2049.86
1502 15.3 4123 959 15/8/06 6.48 2648.12
1113 1.5 819 195 17/8/06 5.83 804.42
329 4.1 2264 434 16/8/06 6.19 2214.89
193 3.5 5691 251 17/8/06 5.64 1299.25
1152 3.5 2865 1075 15/8/06 5.66 2573.78
357 4.1 5664 509 16/8/06 6.06 1982.08
513 7.1 2485 586 15/8/06 6.24 2608.35
1645 6.5 4878 208 17/8/06 5.96 969.32
在我到達這里之前,我使用以下代碼刪除那些根本沒有值或某些NA的列。
rem = NULL
for(col.nr in 1:dim(E.3)[2]){
if(sum(is.na(E.3[, col.nr]) > 0 | all(is.na(E.3[,col.nr])))){
rem = c(rem, col.nr)
}
}
E.4 <- E.3[, -rem]
現在我需要刪除“日期”列,但不是基於它的列名,而是基於它是一個字符串的事實。
我在這里看到( 從R中的data.frame中刪除整個列 )已經如何簡單地將其設置為NULL和其他選項,但我想使用不同的參數。
首先使用is.character
查找具有類character
所有列。 但是,請確保您的日期確實是一個character
,而不是Date
或factor
。 否則使用is.Date
或is.factor
而不是is.character
。
然后,只需將data.frame中不是字符的列進行子集化,例如
df[, !sapply(df, is.character)]
我遇到了類似的問題,但上面的答案並沒有解決日期列(這就是我需要的),所以我找到了另一個解決方案:
df[,-grep ("Date|factor|character", sapply (df, class))]
如果沒有日期,字符和因子列,將返回您的df。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.