gpt4 book ai didi

r - 如何将字符列表转换为列

转载 作者:行者123 更新时间:2023-12-01 12:56:24 27 4
gpt4 key购买 nike

我有一个数据框,C列是字符

df <- data.frame(A = c(13, 15, 17), B = c("yes", "no", "yes"), C = c("Mon, Thu, Sun", "Thu, Tue, Fri", "Sat, Mon, Wen"))

A B C
1 13 yes Mon, Thu, Sun
2 15 no Thu, Tue, Fri
3 17 yes Sat, Mon, Wen

如何将 data.frame C 列转换为:

    A   B   Sun Mon Tue Wen Thu Fri Sat
1 13 yes 1 1 0 0 1 0 0
2 15 no 0 0 1 0 1 1 0
3 17 yes 0 1 0 1 0 0 1

最佳答案

使用 separate_rows 将其转换为长格式,添加一个值列并将 C 转换为因子,然后将其展开回宽格式。

library(dplyr)
library(tidyr)

days.abb <- c("Sun", "Mon", "Tue", "Wen", "Thu", "Fri", "Sat")
df %>%
separate_rows(C) %>%
mutate(value = 1, C = factor(C, days.abb)) %>%
spread(C, value, fill = 0)

给予:

   A   B Sun Mon Tue Wen Thu Fri Sat
1 13 yes 1 1 0 0 1 0 0
2 15 no 0 0 1 0 1 1 0
3 17 yes 0 1 0 1 0 0 1

关于r - 如何将字符列表转换为列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58352521/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com