使用分隔符将一列转换为多列
Convert one column to many using a separator
有这样的数据框:
data.frame(id = c(1,2), text = c("Google,Amazon", "Amazon,Yahoo"), stringsAsFactors = FALSE)
# id text
# 1 1 Google,Amazon
# 2 2 Amazon,Yahoo
如何使用逗号作为分隔符从文本列创建。预期输出示例:
data.frame(id = c(1,2), Google = c(1,0), Amazon = c(1,1), Yahoo = c(0,1))
# id Google Amazon Yahoo
# 1 1 1 1 0
# 2 2 0 1 1
使用库 dplyr
和 tidyr
library(dplyr)
library(tidyr)
df %>%
mutate(
text = strsplit(text, ","),
value = 1
) %>%
unnest(text) %>%
pivot_wider(
id_cols = id,
names_from = text,
values_from = value,
values_fill = list(value = 0)
)
输出
# A tibble: 2 x 4
# id Google Amazon Yahoo
# <dbl> <dbl> <dbl> <dbl>
# 1 1 1 1 0
# 2 2 0 1 1
有这样的数据框:
data.frame(id = c(1,2), text = c("Google,Amazon", "Amazon,Yahoo"), stringsAsFactors = FALSE)
# id text
# 1 1 Google,Amazon
# 2 2 Amazon,Yahoo
如何使用逗号作为分隔符从文本列创建。预期输出示例:
data.frame(id = c(1,2), Google = c(1,0), Amazon = c(1,1), Yahoo = c(0,1))
# id Google Amazon Yahoo
# 1 1 1 1 0
# 2 2 0 1 1
使用库 dplyr
和 tidyr
library(dplyr)
library(tidyr)
df %>%
mutate(
text = strsplit(text, ","),
value = 1
) %>%
unnest(text) %>%
pivot_wider(
id_cols = id,
names_from = text,
values_from = value,
values_fill = list(value = 0)
)
输出
# A tibble: 2 x 4
# id Google Amazon Yahoo
# <dbl> <dbl> <dbl> <dbl>
# 1 1 1 1 0
# 2 2 0 1 1