gpt4 book ai didi

r - 将向量转换为 data.frame,每个唯一值对应一列

转载 作者:行者123 更新时间:2023-12-04 10:37:30 25 4
gpt4 key购买 nike

我们得到一个向量,如下所示:

x <- c(1,2,1,5,2,1,2,5,1)

我们需要的是一个data.frame say y,行数等于length(x),列数等于length(unique(x)),这意味着 x 中每个唯一项目一列,这样 y[i,j]==TRUE当且仅当 x 的第 i 元素是 x 的第 j 个唯一项(分配给列j):

y <- data.frame("1"=x==1, "2"=x==2, "5"=x==5, check.names=F)

执行此操作的简单方法是:

y <- setNames(data.frame(sapply(unique(x), function(i) x==i)), unique(x))

您有更好的主意(即特定功能)吗?

最佳答案

如果您可以接受二进制表示而不是数据的逻辑表示,我会只使用table:

y <- table(seq_along(x), x)

要获取 data.frame,请使用 as.data.frame.matrix:

as.data.frame.matrix(y)
# 1 2 5
# 1 1 0 0
# 2 0 1 0
# 3 1 0 0
# 4 0 0 1
# 5 0 1 0
# 6 1 0 0
# 7 0 1 0
# 8 0 0 1
# 9 1 0 0

关于r - 将向量转换为 data.frame,每个唯一值对应一列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20373994/

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