gpt4 book ai didi

R:将多个 bool 列折叠为单个属性列,每个组合都有新行

转载 作者:行者123 更新时间:2023-12-03 14:39:21 25 4
gpt4 key购买 nike

这个问题在这里已经有了答案:





Converting multiple boolean columns to single factor column

(4 个回答)


2年前关闭。




尝试将具有多个 bool 列的数据框融合或折叠到具有 id 列和折叠值列的两列数据库中,但每个值都会产生一个新行。

示例开头:

      A S1 S2 S3 S4
1 ex1 1 0 0 0
2 ex2 0 1 0 0
3 ex3 0 0 1 0
4 ex4 1 1 0 0
5 ex5 0 1 0 1
6 ex6 0 1 0 0
7 ex7 1 1 1 0
8 ex8 0 1 1 0
9 ex9 0 0 1 0
10 ex10 1 0 0 0

期望的输出:
A   Type
ex1 S1
ex2 S2
ex3 S3
ex4 S1
ex4 S2
ex5 S2
ex5 S4
ex6 S2
ex7 S1
ex7 S2
ex7 S3
ex8 S2
ex8 S3
ex9 S3
ex10 S1

提前致谢!

最佳答案

在基础 R 中:

 subset(cbind(A=dat[,1],stack(dat[-1])),values==1,-2)
A ind
1 ex1 S1
4 ex4 S1
7 ex7 S1
10 ex10 S1
12 ex2 S2
14 ex4 S2
15 ex5 S2
16 ex6 S2
17 ex7 S2
18 ex8 S2
23 ex3 S3
27 ex7 S3
28 ex8 S3
29 ex9 S3
35 ex5 S4

在 tidyverse 中:
library(tidyverse)
dat%>%
gather(Type,j,-A)%>%
filter(j==1)%>%
select(-j)
A Type
1 ex1 S1
2 ex4 S1
3 ex7 S1
4 ex10 S1
5 ex2 S2
6 ex4 S2
7 ex5 S2
8 ex6 S2
9 ex7 S2
10 ex8 S2
11 ex3 S3
12 ex7 S3
13 ex8 S3
14 ex9 S3
15 ex5 S4

关于R:将多个 bool 列折叠为单个属性列,每个组合都有新行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51092121/

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