我有一個資料集,讓調查物件點擊一個 "所有適用 "的選項來選擇他們的偏好,并將選擇的每個選項作為一個由逗號分隔的字串來回傳。
因此,一些示例答復可能是:
- "網路、期刊"。
- "網路、期刊、社交媒體組"
- "期刊"
- "網路、社會媒體組"
- "網路、期刊、社會媒體組"
- "網路、期刊"
- "網路、期刊"
有沒有一種方法可以有效地獲得列中出現的每個子字串的計數?所需的輸出是
"Networking: 4"
"Journals: 3"
"社會媒體組: 2"
uj5u.com熱心網友回復:
資料
df < -結構(list(字串= c("網路。期刊,社會媒體組"。 "期刊", "網路,社會媒體組"。 "Networking, Journals")),行。 names = c(NA。 -4L)。 class = c("tbl_df"/span>。 "tbl", "data. frame"))
# A tibble: 4 x 1
弦
</span>chr>/span>
1 Networking, Journals, Social Media Groups
2 期刊
3 Networking, Social Media Groups
4 Networking, Journals
代碼
library(tidyverse)
df %>%
separate_rows(string, sep = ", ") %> %
count(string)
# A tibble: 3 x 2
字串n
<chr> <int>
1 Journals 3
2 Networking 3
3 社交媒體組 2
uj5u.com熱心網友回復:
我們可以使用基礎R
table(unlist(strsplit(df$string。 ",s ")))
輸出
期刊 網路 社會媒體組
3 3 2
data
df < -結構(list(字串= c("網路。雜志,社會媒體組",。
"期刊", "網路、社會媒體組", "網路、期刊" "網路、期刊
)),行。 names = c(NA。 -4L)。 class = c("tbl_df"/span>。 "tbl", "data. 框架"
))````。
uj5u.com熱心網友回復:
這里有一個tidyverse的替代品:
library(tidyverse)
df %>%。
mutate(string =strsplit(as. character(string)。 ",") %> %
unnest(string) %> %
count(String = str_trim(string))
String n
<chr> <int>
1 Journals 3
2 Networking 3
3 社交媒體組 2
資料:
df < -結構(list(字串= c("網路。雜志,社會媒體組",。
"期刊", "網路、社交媒體組", "網路、期刊" "網路、期刊")),行。 names = c(NA。 -4L)。 class = c("tbl_df"/span>。 "tbl", "data. 框架"
))
轉載請註明出處,本文鏈接:https://www.uj5u.com/yidong/306884.html
標籤:
