gpt4 book ai didi

r - 使用来自另一个数据框中的唯一值和分配给列的相应值的列名称创建新数据框

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

我是 R 的新手,我很确定这很容易完成,但我无法弄清楚如何执行此操作。我已经尝试过使用 for 循环的 split 函数,但无法弄清楚如何正确使用它。例如,这就是我的原始数据框的样子:

dat <- data.frame(col1 = c(rep("red", 4), rep("blue", 3)), col2 = c(1, 3, 2, 4, 7, 8, 9))

col1 col2
red 1
red 3
red 2
red 4
blue 7
blue 8
blue 9

我想为 col1 中的每个唯一值创建新列,并将 col2 中的相应值分配给新数据框。这就是我想要我的新数据框的方式:
red  blue
1 7
3 8
2 9
4 NA

我已经接近了一个接近我想要的列表结构,但我需要一个数据框来对结果进行箱线图和点图。任何帮助将被appriciated。谢谢!

最佳答案

我确定有更有效的解决方案,但这里有一个选择

dat <- data.frame(col1 = c(rep("red", 4), rep("blue", 3)), col2 = c(1, 3, 2, 4, 7, 8, 9))
dat

col1 col2
1 red 1
2 red 3
3 red 2
4 red 4
5 blue 7
6 blue 8
7 blue 9

ust <- unstack(dat, form = col2 ~ col1)
res <- data.frame(sapply(ust, '[', 1:max(unlist(lapply(ust, length)))))
res
blue red
1 7 1
2 8 3
3 9 2
4 NA 4

编辑:如果您希望列顺序为红色,然后为蓝色
res[, c("red", "blue")]
red blue
1 1 7
2 3 8
3 2 9
4 4 NA

关于r - 使用来自另一个数据框中的唯一值和分配给列的相应值的列名称创建新数据框,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32236327/

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