gpt4 book ai didi

r - 将数据框中的字符串向量转换为 R 中的分类变量

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

我对 R 相当陌生,并且确信有一种方法可以在不使用循环的情况下执行以下操作,我更熟悉。

举个例子,你有一堆每个人都喜欢的名字和水果:

name <- c("Alice", "Bob")
preference <- list(c("apple", "pear"), c("banana", "apple"))
df <- as.data.frame(cbind(name, preference))

如何将其转换为以下内容?

apple <- c(1, 1)
pear <- c(1, 0)
banana <- c(0, 1)
df2 <- data.frame(name, apple, pear, banana)

我的基本直觉是首先提取所有水果,然后循环检查每个水果是否在每一行的偏好中:

fruits <- unique(unlist(df$preference))
for (fruit in fruits) {
df <- df %>% rowwise %>% mutate("{fruit}" := fruit %in% preference)
}

这似乎可行,但我很确定有更好的方法来做到这一点。

最佳答案

df %>%
unnest(everything()) %>%
xtabs(~., .) %>%
as.data.frame.matrix() %>%
rownames_to_column('name')

name apple banana pear
1 Alice 1 0 1
2 Bob 1 1 0

关于r - 将数据框中的字符串向量转换为 R 中的分类变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/71009924/

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