gpt4 book ai didi

将值从一个数据帧表示到另一个数据帧。申请?申请?

转载 作者:行者123 更新时间:2023-12-02 08:52:53 27 4
gpt4 key购买 nike

我有以下数据框

data<-data.frame(ID=c("a", "b", "c", "d"), zeros=c(3,2,5,4), ones=c(1,1,2,1))


ID zeros ones
1 a 3 1
2 b 2 1
3 c 5 2
4 d 4 1

我希望创建另一个包含 2 列的数据框:

第一列(id)ID重复(零+个)次第二列值应该是 c(rep(0, Zeros),rep(1, Ones))

这样结果就是

    id value
1 a 0
2 a 0
3 a 0
4 a 1
5 b 0
6 b 0
7 b 1
8 c 0
9 c 0
10 c 0
11 c 0
12 c 0
13 c 1
14 c 1
15 d 0
16 d 0
17 d 0
18 d 0
19 d 1

我尝试了data.frame(id=(rep(data$ID, (data$zeros+data$ones))), value=c(rep(0, data$zeros), rep(1, data$ones))) 但不起作用。有任何想法吗?预先感谢您

最佳答案

使用 plyr 包中的 ddply 可能有点过分,但这是我想到的第一件事:

ddply(dat,.(ID),function(x){data.frame(value = rep(c(0,1),times = c(x$zeros,x$ones)))})

哦,我将您的数据框的名称更改为 dat 以避免坏习惯(data 是一个经常使用的函数的名称)。

关于将值从一个数据帧表示到另一个数据帧。申请?申请?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7233660/

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