2
我有一個數據框SCC
有幾列。從這些專欄中,我想找到所有在其中都有「煤」字的行。合併列表中的所有元素並僅保留唯一值
我使用grep
功能用下面的命令做變量x
(列表),以便和存儲的結果:
x <- sapply(SCC, grep, pattern="coal", ignore.case=T)
現在x
告訴我在哪裏,在數據幀中的單詞「煤」的發生,它是一個列表,這個列表的第4和第9個元素在下面給出。
> x[4]
$EI.Sector
[1] 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16
[17] 17 18 19 20 21 22 23 24 25 26 27 28 29 30 80 81
[33] 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98
[49] 99 100 101 102 103 104 105 106 107 108 109 110 111 112 161 162
[65] 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178
[81] 179 180 181 182 183 184 185 215 221 433 434 435 447 448 462 463
[97] 527 528 529
> x[9]
$SCC.Level.Three
[1] 1 2 3 4 5 6 7 8 9 10 11 12 13
[14] 14 15 16 17 18 19 20 21 79 80 81 83 84
[27] 85 86 87 88 89 90 91 92 93 94 95 96 97
[40] 98 99 100 101 102 103 104 105 161 162 163 164 165
[53] 166 167 168 169 170 171 172 173 174 175 176 177 178
[66] 179 180 242 433 434 435 447 448 462 463 477 478 527
[79] 528 529 2220 2221 2222 2223 2224 2496 2497 2498 2499 2500 2501
[92] 2502 2503 2504 2505 2506 2591 2592 4520 4673 4674 4675 4676 4677
[105] 4678 4679 4680 7415 7416 7417 7418 7419 7420 7421 7422 7423 7424
[118] 7425 7426 7427 7428 7429 7430 7431 7432 7433 7434 7435 7436 7437
[131] 7438 7439 7440 7441 7442 7443 7444 7445 7446 7447 7448 7449 7450
[144] 7451 7452 7453 7454 7455 7456 7457 7458 7459 7460 7461 7462 7991
[157] 7992 7993 7994 7995 7996 7997 7998 7999 8000 8001 8002 8003 8004
[170] 8005 8006 8007 8008 8009 9054 9055 9056 9057 9058 9059 9060
問題1
我想x[4]
和x[9]
合併成一個指數;我應該如何繼續?我現在正在使用下面的代碼,但有一個更簡潔的命令?
y <- x[[4]] %in% intersect(x[[4]], x[[9]])
z <- c(x[[4]][!y], x[[9]])
> sort(z)
[1] 1 2 3 4 5 6 7 8 9 10 11 12
[13] 13 14 15 16 17 18 19 20 21 22 23 24
[25] 25 26 27 28 29 30 79 80 81 83 84 85
[37] 86 87 88 89 90 91 92 93 94 95 96 97
[49] 98 99 100 101 102 103 104 105 106 107 108 109
[61] 110 111 112 161 162 163 164 165 166 167 168 169
[73] 170 171 172 173 174 175 176 177 178 179 180 181
[85] 182 183 184 185 215 221 242 433 434 435 447 448
[97] 462 463 477 478 527 528 529 2220 2221 2222 2223 2224
[109] 2496 2497 2498 2499 2500 2501 2502 2503 2504 2505 2506 2591
[121] 2592 4520 4673 4674 4675 4676 4677 4678 4679 4680 7415 7416
[133] 7417 7418 7419 7420 7421 7422 7423 7424 7425 7426 7427 7428
[145] 7429 7430 7431 7432 7433 7434 7435 7436 7437 7438 7439 7440
[157] 7441 7442 7443 7444 7445 7446 7447 7448 7449 7450 7451 7452
[169] 7453 7454 7455 7456 7457 7458 7459 7460 7461 7462 7991 7992
[181] 7993 7994 7995 7996 7997 7998 7999 8000 8001 8002 8003 8004
[193] 8005 8006 8007 8008 8009 9054 9055 9056 9057 9058 9059 9060
問題2
還有其他列在SCC
「煤」 字。 x
元素的長度爲我們提供了在SCC
中使用「煤」這個詞的位置。是否有單個命令來合併x
的所有元素以生成行索引?
sapply(x, NROW)
SCC Data.Category Short.Name
0 0 239
EI.Sector Option.Group Option.Set
99 0 0
SCC.Level.One SCC.Level.Two SCC.Level.Three
0 0 181
SCC.Level.Four Map.To Last.Inventory.Year
126 0 0
Created_Date Revised_Date Usage.Notes
0 0 0
工會不工作,有沒有辦法做到在聯盟所有x的元素同時?謝謝 – Bhail
所有這些。 union()僅用於向量,是否有另一個函數可以用作參數x的所有元素? – Bhail