gpt4 book ai didi

r - 如何用 0 和 1 填充 R 中行列匹配的值的数据集?

转载 作者:行者123 更新时间:2023-12-04 22:59:30 26 4
gpt4 key购买 nike

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





Split character column into several binary (0/1) columns

(7 个回答)


去年关闭。




我在 csv 文件中有一个数据集,如下所示:

 X               Colour Orange Red White Violet Black Yellow Blue
1 1 Orange, Red NA NA NA NA NA NA NA
2 2 Red NA NA NA NA NA NA NA
3 3 White, Black NA NA NA NA NA NA NA
4 4 Yellow NA NA NA NA NA NA NA
5 5 Blue, Orange, Violet NA NA NA NA NA NA NA

我正在尝试为发生的每个行列匹配添加 0 和 1。预期的输出是:
      Colour     Orange Red White   Violet  Black   Yellow  Blue
1 Orange,Red 1 1 0 0 0 0 0
2 Red 0 1 0 0 0 0 0
3 White,Black 0 0 1 0 1 0 0
4 Yellow 0 0 0 0 0 1 0
5 Blue,Orange, 1 0 0 1 0 0 1
Violet

如何在 R 中实现这一点?

最佳答案

遍历列名,并使用 grepl 检查它们是否在模式中:

dat[-(1:2)] <-  sapply( colnames(dat[-(1:2)]), grepl, x=dat$Colour  ) + 0

# X Colour Orange Red White Violet Black Yellow Blue
#1 1 Orange, Red 1 1 0 0 0 0 0
#2 2 Red 0 1 0 0 0 0 0
#3 3 White, Black 0 0 1 0 1 0 0
#4 4 Yellow 0 0 0 0 0 1 0
#5 5 Blue, Orange, Violet 1 0 0 1 0 0 1

关于r - 如何用 0 和 1 填充 R 中行列匹配的值的数据集?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30317476/

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