我正在尋找不同單詞出現在資料框中的次數,然后將其重新制作成一個新的資料框,顯示每個單詞的計數。
例如,我有一個這樣的資料表:
| Col1 | Col2 | Col3 | Col4 | Col5 | 繼續... |
|---|---|---|---|---|---|
| 密碼1 | GHSME12 | 粉末2 | 約翰尼 | 犁01 | 飛機 |
| 用戶代碼20 | 洪1 | GHSME12 | 犁01 | 峽谷09 | 約翰尼 |
| 用戶代碼15 | 犁01 | 峽谷09 | 約翰尼 | 粉末2 | 糖漿9 |
| 繼續... | ... | ... | ... | ... | ... |
我希望能夠計算每個 Col1 資料中每個單詞出現的次數。雖然我可以做諸如專案數 WordX = wordX 之類的事情,但有數百個密碼,使手動計數變得困難,所以我想知道在這種情況下我是否必須使用 for 回圈和空白資料框來實作這樣的事情:
| 密碼 | 密碼1 | 用戶代碼20 | 用戶代碼15 | 繼續... |
|---|---|---|---|---|
| GHSME12 | 1 | 1 | 0 | ... |
| 粉末2 | 1 | 0 | 1 | ... |
| 約翰尼 | 1 | 1 | 1 | ... |
| 犁01 | 1 | 1 | 1 | ... |
| 飛機 | 1 | 0 | 0 | ... |
| 洪1 | 0 | 1 | 0 | ... |
| 峽谷09 | 0 | 1 | 1 | ... |
| 糖漿9 | 0 | 0 | 1 | ... |
如果有人對解決這個問題有一個好主意,我將不勝感激。謝謝!
uj5u.com熱心網友回復:
table(cbind(stack(df, -Col1)['values'], df['Col1']))
Col1
values Passwords1 Usercode15 Usercode20
GHSME12 1 0 1
GORGE09 0 1 1
HUNG1 0 0 1
JOHNC 1 1 1
PLANE 1 0 0
PLOW01 1 1 1
POWDER2 1 1 0
SYRUP9 0 1 0
整潔的:
library(tidyverse)
df %>%
pivot_longer(-Col1) %>%
pivot_wider(names_from = Col1, values_from = name,
values_fn = length, values_fill = 0)
# A tibble: 8 x 4
value Passwords1 Usercode20 Usercode15
<chr> <int> <int> <int>
1 GHSME12 1 1 0
2 POWDER2 1 0 1
3 JOHNC 1 1 1
4 PLOW01 1 1 1
5 PLANE 1 0 0
6 HUNG1 0 1 0
7 GORGE09 0 1 1
8 SYRUP9 0 0 1
轉載請註明出處,本文鏈接:https://www.uj5u.com/qiye/427576.html
